Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +21,31 @@ jobs:
- variant: '12'
- variant: '14'
- variant: '16'
- variant: '18'
- variant: '6-apache'
- variant: '8-apache'
- variant: '10-apache'
- variant: '12-apache'
- variant: '14-apache'
- variant: '16-apache'
- variant: '18-apache'
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v1
- name: Build and test
run: |
BRANCH="master" VARIANT="${{ matrix.variant }}" ./build-and-test.sh
docker images | grep thecodingmachine/nodejs
- name: Login to DockerHub
# Merge ~ push.
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Release
# Merge ~ push.
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
- name: Build, test and push
env:
EVENT_NAME: ${{ github.event_name }}
run: |
docker push thecodingmachine/nodejs:${{ matrix.variant}}
BRANCH="master" VARIANT="${{ matrix.variant }}" ./build-and-test.sh
docker images | grep thecodingmachine/nodejs
2 changes: 1 addition & 1 deletion Dockerfile.10
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.10-apache
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.12
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.12-apache
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.14
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.14-apache
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.16
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.16-apache
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
4 changes: 2 additions & 2 deletions Dockerfile.18
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM debian:stretch-slim
FROM debian:bullseye-slim

LABEL authors="Julien Neuhart <j.neuhart@thecodingmachine.com>, David Négrier <d.negrier@thecodingmachine.com>"

Expand Down Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
4 changes: 2 additions & 2 deletions Dockerfile.18-apache
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM debian:stretch-slim
FROM debian:bullseye-slim

LABEL authors="Julien Neuhart <j.neuhart@thecodingmachine.com>, David Négrier <d.negrier@thecodingmachine.com>"

Expand Down Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.6
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.6-apache
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.8
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
2 changes: 1 addition & 1 deletion Dockerfile.8-apache
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@ CMD ["apache2-foreground"]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker
17 changes: 9 additions & 8 deletions build-and-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,34 @@

set -xe

# Let's replace the "." by a "-" with some bash magic
docker build -t thecodingmachine/nodejs:${BRANCH}-${VARIANT} -f Dockerfile.${VARIANT} .
docker buildx build --platform=linux/amd64 --load -t thecodingmachine/nodejs:${VARIANT} -f Dockerfile.${VARIANT} .

# Post build unit tests
if [[ $VARIANT == *apache ]]; then CONTAINER_CWD=/var/www/html; else CONTAINER_CWD=/usr/src/app; fi
# Default user is 1000
RESULT=`docker run --rm thecodingmachine/nodejs:${BRANCH}-${VARIANT} id -ur`
RESULT=`docker run --rm thecodingmachine/nodejs:${VARIANT} id -ur`
[[ "$RESULT" = "1000" ]]

# If mounted, default user has the id of the mount directory
mkdir user1999 && sudo chown 1999:1999 user1999
ls -al user1999
RESULT=`docker run --rm -v $(pwd)/user1999:$CONTAINER_CWD thecodingmachine/nodejs:${BRANCH}-${VARIANT} id -ur`
RESULT=`docker run --rm -v $(pwd)/user1999:$CONTAINER_CWD thecodingmachine/nodejs:${VARIANT} id -ur`
[[ "$RESULT" = "1999" ]]
sudo rm -rf user1999

# Let's check that the crons are actually sending logs in the right place
RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo "foobar")" thecodingmachine/nodejs:${BRANCH}-${VARIANT} sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1`
RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo "foobar")" thecodingmachine/nodejs:${VARIANT} sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1`
[[ "$RESULT" = "msg=foobar" ]]

RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&2 echo "error")" thecodingmachine/nodejs:${BRANCH}-${VARIANT} sleep 1 2>&1 | grep -oP 'msg=error' | head -n1`
RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&2 echo "error")" thecodingmachine/nodejs:${VARIANT} sleep 1 2>&1 | grep -oP 'msg=error' | head -n1`
[[ "$RESULT" = "msg=error" ]]

# Let's check that the cron with a user different from root is actually run.
RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami" -e CRON_USER_1="docker" thecodingmachine/nodejs:${BRANCH}-${VARIANT} sleep 1 2>&1 | grep -oP 'msg=docker' | head -n1`
RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami" -e CRON_USER_1="docker" thecodingmachine/nodejs:${VARIANT} sleep 1 2>&1 | grep -oP 'msg=docker' | head -n1`
[[ "$RESULT" = "msg=docker" ]]

echo "Tests passed with success"

docker build -t thecodingmachine/nodejs:${VARIANT} -f Dockerfile.${VARIANT} .
if [[ "$EVENT_NAME" == "push" || "$EVENT_NAME" == "schedule" ]]; then
docker buildx build --platform=linux/amd64,linux/arm64 --push -t thecodingmachine/nodejs:${VARIANT} -f Dockerfile.${VARIANT} .
fi
28 changes: 14 additions & 14 deletions orbit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ tasks:
- use: generate
short: Generates all Dockerfiles
run:
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.6 -p "NodeVersion,6.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.8 -p "NodeVersion,8.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.10 -p "NodeVersion,10.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.12 -p "NodeVersion,12.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.14 -p "NodeVersion,14.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.16 -p "NodeVersion,16.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.18 -p "NodeVersion,18.x;Variant,standalone"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.6-apache -p "NodeVersion,6.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.8-apache -p "NodeVersion,8.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.10-apache -p "NodeVersion,10.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.12-apache -p "NodeVersion,12.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.14-apache -p "NodeVersion,14.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.16-apache -p "NodeVersion,16.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.18-apache -p "NodeVersion,18.x;Variant,apache"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.6 -p "NodeVersion,6.x;Variant,standalone;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.8 -p "NodeVersion,8.x;Variant,standalone;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.10 -p "NodeVersion,10.x;Variant,standalone;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.12 -p "NodeVersion,12.x;Variant,standalone;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.14 -p "NodeVersion,14.x;Variant,standalone;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.16 -p "NodeVersion,16.x;Variant,standalone;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.18 -p "NodeVersion,18.x;Variant,standalone;DebianVariant,bullseye-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.6-apache -p "NodeVersion,6.x;Variant,apache;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.8-apache -p "NodeVersion,8.x;Variant,apache;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.10-apache -p "NodeVersion,10.x;Variant,apache;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.12-apache -p "NodeVersion,12.x;Variant,apache;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.14-apache -p "NodeVersion,14.x;Variant,apache;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.16-apache -p "NodeVersion,16.x;Variant,apache;DebianVariant,stretch-slim"
- orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.18-apache -p "NodeVersion,18.x;Variant,apache;DebianVariant,bullseye-slim"
5 changes: 3 additions & 2 deletions utils/Dockerfile.blueprint
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{{- $node_version := .Orbit.NodeVersion -}}
{{- $variant := .Orbit.Variant -}}
{{- $debian_variant := .Orbit.DebianVariant -}}

FROM debian:stretch-slim
FROM debian:{{ $debian_variant }}

LABEL authors="Julien Neuhart <j.neuhart@thecodingmachine.com>, David Négrier <d.negrier@thecodingmachine.com>"

Expand Down Expand Up @@ -237,4 +238,4 @@ CMD [ "node" ]

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

USER docker
USER docker