Skip to content

Commit 092ecf8

Browse files
committed
Initial commit
0 parents  commit 092ecf8

25 files changed

Lines changed: 490 additions & 0 deletions

.github/workflows/docker.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: CI
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
strategy:
9+
matrix:
10+
version: [12, 14]
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@master
15+
16+
- name: Build images
17+
run: |
18+
docker build --pull -t kooldev/node:${{ matrix.version }} ${{ matrix.version }}
19+
docker build -t kooldev/node:${{ matrix.version }}-adonis ${{ matrix.version }}-adonis
20+
docker build -t kooldev/node:${{ matrix.version }}-adonis-qa ${{ matrix.version }}-adonis-qa
21+
docker build -t kooldev/node:${{ matrix.version }}-qa ${{ matrix.version }}-qa
22+
23+
- name: Tag latest images
24+
if: matrix.version == '14'
25+
run: |
26+
docker tag kooldev/node:${{ matrix.version }} kooldev/node:latest
27+
docker tag kooldev/node:${{ matrix.version }}-adonis kooldev/node:adonis
28+
docker tag kooldev/node:${{ matrix.version }}-adonis-qa kooldev/node:adonis-qa
29+
docker tag kooldev/node:${{ matrix.version }}-qa kooldev/node:qa
30+
31+
- name: Test images
32+
run: |
33+
for suffix in '' -adonis -adonis-qa -qa; do
34+
docker run kooldev/node:${{ matrix.version }}$suffix node -v;
35+
docker run kooldev/node:${{ matrix.version }}$suffix npm -v;
36+
docker run kooldev/node:${{ matrix.version }}$suffix yarn -v;
37+
38+
docker run -e ASUSER=1000 kooldev/node:${{ matrix.version }}$suffix node -v;
39+
docker run -e ASUSER=1000 kooldev/node:${{ matrix.version }}$suffix npm -v;
40+
docker run -e ASUSER=1000 kooldev/node:${{ matrix.version }}$suffix yarn -v;
41+
done
42+
43+
- name: Push to hub
44+
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
45+
env:
46+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
47+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
48+
run: |
49+
echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
50+
51+
docker push kooldev/node:${{ matrix.version }}
52+
docker push kooldev/node:${{ matrix.version }}-adonis
53+
docker push kooldev/node:${{ matrix.version }}-adonis-qa
54+
docker push kooldev/node:${{ matrix.version }}-qa
55+
56+
- name: Push to hub latest
57+
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.version == '14'
58+
env:
59+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
60+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
61+
run: |
62+
echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
63+
64+
docker push kooldev/node:latest
65+
docker push kooldev/node:adonis
66+
docker push kooldev/node:adonis-qa
67+
docker push kooldev/node:qa

12-adonis-qa/Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
FROM kooldev/node:12-adonis
2+
3+
RUN npm install -g buddy.js jshint jsinspect eslint \
4+
&& rm -rf rm -rf /root/.npm/*

12-adonis/Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM kooldev/node:12
2+
3+
RUN npm install -g @adonisjs/cli \
4+
&& rm -rf rm -rf /root/.npm/*
5+
6+
CMD [ "adonis", "serve" ]

12-qa/Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
FROM kooldev/node:12
2+
3+
RUN npm install -g buddy.js jshint jsinspect eslint \
4+
&& rm -rf rm -rf /root/.npm/*

12/Dockerfile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM node:12-alpine
2+
3+
ENV ASUSER= \
4+
UID=0 \
5+
ENTRYPOINT=entrypoint.node.sh
6+
7+
WORKDIR /app
8+
9+
RUN adduser -D -u 1337 kool && deluser --remove-home node \
10+
&& apk add --no-cache \
11+
bash \
12+
git \
13+
shadow \
14+
su-exec \
15+
# build tools
16+
g++ \
17+
libpng-dev \
18+
make \
19+
zlib-dev \
20+
python \
21+
&& npm install -g pnpm \
22+
&& rm -rf rm -rf /root/.npm/*
23+
24+
COPY root-npmrc /root/.npmrc
25+
COPY --chown=kool:kool kool-npmrc /home/kool/.npmrc
26+
COPY entrypoint /entrypoint
27+
28+
RUN chmod +x /entrypoint
29+
30+
ENTRYPOINT [ "/entrypoint" ]

12/entrypoint

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/sh
2+
set -e
3+
4+
# Run as current user
5+
CURRENT_USER=${ASUSER:-${UID:-0}}
6+
7+
if [ ! -z "$CURRENT_USER" ] && [ "$CURRENT_USER" != "0" ]; then
8+
usermod -u $CURRENT_USER kool
9+
fi
10+
11+
# Run entrypoint if provided
12+
if [ ! -z "$ENTRYPOINT" ] && [ -f "$ENTRYPOINT" ]; then
13+
bash $ENTRYPOINT
14+
fi
15+
16+
if [ ! -z "$CURRENT_USER" ] && [ "$CURRENT_USER" != "0" ]; then
17+
exec su-exec kool "$@"
18+
else
19+
exec "$@"
20+
fi

12/kool-npmrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
scripts-prepend-node-path=true
2+
package-import-method=copy
3+
shamefully-hoist=true
4+
store-dir=/home/kool/.pnpm-store

12/root-npmrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
scripts-prepend-node-path=true
2+
package-import-method=copy
3+
shamefully-hoist=true
4+
store-dir=/root/.pnpm-store

14-adonis-qa/Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
FROM kooldev/node:14-adonis
2+
3+
RUN npm install -g buddy.js jshint jsinspect eslint \
4+
&& rm -rf rm -rf /root/.npm/*

14-adonis/Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM kooldev/node:14
2+
3+
RUN npm install -g @adonisjs/cli \
4+
&& rm -rf rm -rf /root/.npm/*
5+
6+
CMD [ "adonis", "serve" ]

0 commit comments

Comments
 (0)