From e7d8ce2b20680e388150cbba40be07a523dbdbf1 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 13 Jul 2026 10:31:32 -0500 Subject: [PATCH 1/6] feat: Add major tag --- readme.md | 1 + tests/publish.sh | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/readme.md b/readme.md index 2b4e6b0..3434516 100644 --- a/readme.md +++ b/readme.md @@ -17,6 +17,7 @@ Docker image to run Meteor apps. - `zodern/meteor` The recommended version. Runs the app as a non-root user. - `zodern/meteor:root` Compatible with meteord. Runs the app as the root user and has phantomjs installed. Any notes below about permissions do not apply to this image. +- `zodern/meteor:` or `zodern/meteor:-root` (for example, `zodern/meteor:1`) Use the latest minor or patch version, without any breaking changes in a new major version (such as changing to a newer Debian base image). - `zodern/meteor:slim` Coming soon. Is a smaller image without node or npm pre-installed. During ONBUILD or when starting the app, it will install the correct version. ## How To Use diff --git a/tests/publish.sh b/tests/publish.sh index c64972f..056a1a3 100644 --- a/tests/publish.sh +++ b/tests/publish.sh @@ -1,15 +1,21 @@ set -e VERSION="$1" +MAJOR="${VERSION%%.*}" + # Normal image docker tag zodern/meteor zodern/meteor:latest docker tag zodern/meteor zodern/meteor:$VERSION +docker tag zodern/meteor zodern/meteor:$MAJOR docker push zodern/meteor:latest docker push zodern/meteor:$VERSION +docker push zodern/meteor:$MAJOR # root image docker tag zodern/meteor:root zodern/meteor:$VERSION-root +docker tag zodern/meteor:root zodern/meteor:$MAJOR-root docker push zodern/meteor:root docker push zodern/meteor:$VERSION-root +docker push zodern/meteor:$MAJOR-root From b9b9daed2ab18e6183dc70061dc836b4a17ea7c7 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 13 Jul 2026 10:33:02 -0500 Subject: [PATCH 2/6] ci: update test-publish workflow --- .github/workflows/test-publish.yaml | 30 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/test-publish.yaml b/.github/workflows/test-publish.yaml index f173b2d..710cd1d 100644 --- a/.github/workflows/test-publish.yaml +++ b/.github/workflows/test-publish.yaml @@ -35,25 +35,29 @@ jobs: - '--release=2.11.0' - '--release=2.12' - '--release=2.13.3' + - '--release=2.14' + - '--release=2.16' + - '--release=3.0.4' + - '--release=3.1.2' + - '--release=3.2.2' + - '--release=3.3.2' + - '--release=3.4.1' # Latest version - - + - steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - uses: actions/cache@v2 + - uses: actions/cache@v4 name: Meteor cache with: path: ~/.meteor key: ${{ runner.os }}-meteor-${{ matrix.meteorOptions }} - - uses: satackey/action-docker-layer-caching@v0.0.11 - continue-on-error: true - - name: Install Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: - node-version: '14.x' + node-version: '20.x' - name: Install npm dependencies run: npm ci @@ -71,15 +75,15 @@ jobs: needs: test steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + - name: Install Node.js + uses: actions/setup-node@v4 with: - node-version: '14.x' + node-version: '20.x' - name: Login to Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 9a25572b86676f474134c6c4c728e4044b329c4c Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 13 Jul 2026 10:45:17 -0500 Subject: [PATCH 3/6] ci: fix tests for old Meteor versions --- tests/test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test.sh b/tests/test.sh index 5cfda45..8701b8d 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -75,6 +75,7 @@ test_bundle() { -v "$PWD"/../bundle:/bundle \ -e "ROOT_URL=http://localhost.com" \ -e "NPM_INSTALL_OPTIONS=--no-bin-links" \ + -e "NODE_TLS_REJECT_UNAUTHORIZED=0"\ # Install npm deps in old npm versions -p 3000:3000 \ -d \ --name meteor-docker-test \ From 51e801d377bd8b48cb8066f194052bdbd3299da4 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 13 Jul 2026 11:11:54 -0500 Subject: [PATCH 4/6] ci: attempt to fix env var --- tests/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test.sh b/tests/test.sh index 8701b8d..7bf16d1 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -75,7 +75,7 @@ test_bundle() { -v "$PWD"/../bundle:/bundle \ -e "ROOT_URL=http://localhost.com" \ -e "NPM_INSTALL_OPTIONS=--no-bin-links" \ - -e "NODE_TLS_REJECT_UNAUTHORIZED=0"\ # Install npm deps in old npm versions + -e "NODE_TLS_REJECT_UNAUTHORIZED=0" \ -p 3000:3000 \ -d \ --name meteor-docker-test \ From d1332c213d2d1a732f5a70e07faf1d2843ba27d0 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 13 Jul 2026 11:45:03 -0500 Subject: [PATCH 5/6] chore: fix tests for old Meteor versions --- tests/test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test.sh b/tests/test.sh index 7bf16d1..8ad93bd 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -45,7 +45,7 @@ change_version() { sleep 1 echo "=> npm install babel-runtime" - hide_output meteor npm install babel-runtime -q || true + NODE_TLS_REJECT_UNAUTHORIZED=0 hide_output meteor npm install babel-runtime -q || true # At some point, the default app started creating Mongo collections # Remove the default server code so we can test without Mongo @@ -115,7 +115,7 @@ test_built_docker() { cat < Dockerfile FROM $DOCKER_IMAGE COPY --chown=app:app . /built_app -RUN cd /built_app/programs/server && npm install $NPM_OPTIONS +RUN cd /built_app/programs/server && NODE_TLS_REJECT_UNAUTHORIZED=0 npm install $NPM_OPTIONS EOT hide_output docker build --build-arg NODE_VERSION="$NODE_VERSION" -t zodern/meteor-test . From 89c740522a8d178d86f022b159f405d3b4d5da63 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 13 Jul 2026 13:26:45 -0500 Subject: [PATCH 6/6] ci: Fix testing with old npm versions --- tests/test.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test.sh b/tests/test.sh index 8ad93bd..ebdd84a 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -45,7 +45,7 @@ change_version() { sleep 1 echo "=> npm install babel-runtime" - NODE_TLS_REJECT_UNAUTHORIZED=0 hide_output meteor npm install babel-runtime -q || true + NODE_TLS_REJECT_UNAUTHORIZED=0 npm_config_strict_ssl=false hide_output meteor npm install babel-runtime -q || true # At some point, the default app started creating Mongo collections # Remove the default server code so we can test without Mongo @@ -76,6 +76,7 @@ test_bundle() { -e "ROOT_URL=http://localhost.com" \ -e "NPM_INSTALL_OPTIONS=--no-bin-links" \ -e "NODE_TLS_REJECT_UNAUTHORIZED=0" \ + -e "npm_config_strict_ssl=false" \ -p 3000:3000 \ -d \ --name meteor-docker-test \ @@ -98,6 +99,8 @@ EOT hide_output docker build --build-arg NODE_VERSION="$NODE_VERSION" -t zodern/meteor-test . docker run --name meteor-docker-test \ -e "ROOT_URL=http://app.com" \ + -e "NODE_TLS_REJECT_UNAUTHORIZED=0" \ + -e "npm_config_strict_ssl=false" \ -p 3000:3000 \ -d \ zodern/meteor-test @@ -115,7 +118,7 @@ test_built_docker() { cat < Dockerfile FROM $DOCKER_IMAGE COPY --chown=app:app . /built_app -RUN cd /built_app/programs/server && NODE_TLS_REJECT_UNAUTHORIZED=0 npm install $NPM_OPTIONS +RUN cd /built_app/programs/server && NODE_TLS_REJECT_UNAUTHORIZED=0 npm_config_strict_ssl=false npm install $NPM_OPTIONS EOT hide_output docker build --build-arg NODE_VERSION="$NODE_VERSION" -t zodern/meteor-test .