From 512bf229f6b715bd7cedcd7660457ee3f95ac4a5 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:18:24 +0000 Subject: [PATCH 01/12] change lower case --- .github/workflows/docker-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 2b3a4c6..c3f4ed3 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -65,6 +65,6 @@ jobs: file: ./docker/Dockerfile push: true tags: | - ghcr.io/${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ github.sha }} + ghcr.io/${{ github.repository | toLower }}:latest + ghcr.io/${{ github.repository | toLower }}:${{ github.sha }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From 36e7417f844efbd6ea4652a1838612e28f9e9dfe Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:20:37 +0000 Subject: [PATCH 02/12] dev --- .github/workflows/docker-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index c3f4ed3..ac004c0 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -65,6 +65,6 @@ jobs: file: ./docker/Dockerfile push: true tags: | - ghcr.io/${{ github.repository | toLower }}:latest - ghcr.io/${{ github.repository | toLower }}:${{ github.sha }} + ghcr.io/${{ format('{0}', github.repository) }}:latest + ghcr.io/${{ format('{0}', github.repository) }}:${{ github.sha }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From d8fba4b6a1d797bdefc9f0567256ecc85afbf028 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:21:27 +0000 Subject: [PATCH 03/12] test --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index ac004c0..5802b53 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -34,7 +34,7 @@ jobs: push-to-ghcr: runs-on: ubuntu-latest - if: github.ref == 'refs/heads/main' + # if: github.ref == 'refs/heads/main' needs: build-test permissions: contents: read From c1c7ce608aa97ce8762f8a4f5a178415ea0c37b6 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:25:25 +0000 Subject: [PATCH 04/12] dev --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 5802b53..08d8d3f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository }} + ghcr.io/${{ format('{0}', github.repository) }} - name: Build and push uses: docker/build-push-action@v6 From e0f5bef0c5688c8e499e62dd663d8d996b8510f5 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:30:40 +0000 Subject: [PATCH 05/12] use shell for lower case --- .github/workflows/docker-publish.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 08d8d3f..10a14ee 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -51,11 +51,15 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Set lowercase repository name + run: | + echo "LOWERCASE_REPO=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Extract metadata for Docker id: meta uses: docker/metadata-action@v5 with: - ghcr.io/${{ format('{0}', github.repository) }} + images: ghcr.io/${{ env.LOWERCASE_REPO }} - name: Build and push uses: docker/build-push-action@v6 @@ -65,6 +69,6 @@ jobs: file: ./docker/Dockerfile push: true tags: | - ghcr.io/${{ format('{0}', github.repository) }}:latest - ghcr.io/${{ format('{0}', github.repository) }}:${{ github.sha }} + ghcr.io/${{ env.LOWERCASE_REPO }}:latest + ghcr.io/${{ env.LOWERCASE_REPO }}:${{ github.sha }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From 3ed9bb0d4d414613f2a0bcbeb1031f32446685d9 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:36:20 +0000 Subject: [PATCH 06/12] remove multiple platform --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 10a14ee..5edfe06 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -65,7 +65,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . - platforms: linux/amd64,linux/arm64 + # platforms: linux/amd64,linux/arm64 file: ./docker/Dockerfile push: true tags: | From 2cb22ff7677106d29da132ffb78c7e8eb047a80a Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:43:28 +0000 Subject: [PATCH 07/12] enable multiple platform --- .github/workflows/docker-publish.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 5edfe06..c56cc43 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -44,6 +44,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + # 👆 This enables ARM emulation on AMD64 runner + - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: @@ -65,7 +69,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . - # platforms: linux/amd64,linux/arm64 + platforms: linux/amd64,linux/arm64 file: ./docker/Dockerfile push: true tags: | From a9bb6a732916a219ee99712b1629d20ba67c4047 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:47:05 +0000 Subject: [PATCH 08/12] dev --- .github/workflows/docker-publish.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index c56cc43..304610f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -48,6 +48,9 @@ jobs: uses: docker/setup-qemu-action@v3 # 👆 This enables ARM emulation on AMD64 runner + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: @@ -71,7 +74,7 @@ jobs: context: . platforms: linux/amd64,linux/arm64 file: ./docker/Dockerfile - push: true + push: false tags: | ghcr.io/${{ env.LOWERCASE_REPO }}:latest ghcr.io/${{ env.LOWERCASE_REPO }}:${{ github.sha }} From 89e18903172c744db7ef3634bc3ca9d63346308d Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 19:58:22 +0000 Subject: [PATCH 09/12] test --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index e9230f5..f463845 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ # Using 18 alpine because supports arm/v8 and arm/v8 needed for silicon chips -FROM node:18-alpine +FROM node:20-alpine RUN apk add --no-cache bash WORKDIR /app ADD ./ . From ac78faf2b3ea92ed33f8922f10d230d06edeb9fb Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 20:08:31 +0000 Subject: [PATCH 10/12] test --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f463845..63600d1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ # Using 18 alpine because supports arm/v8 and arm/v8 needed for silicon chips -FROM node:20-alpine -RUN apk add --no-cache bash +FROM node:18-alpine +RUN apk add --no-cache bash python3 make g++ WORKDIR /app ADD ./ . RUN npm install From 768a6f7276c761fcb4177af35c5750103123b3cb Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 20:21:18 +0000 Subject: [PATCH 11/12] make docker size smaller --- docker/Dockerfile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 63600d1..156c449 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,8 +1,17 @@ # Using 18 alpine because supports arm/v8 and arm/v8 needed for silicon chips -FROM node:18-alpine + +# Builder stage with build tools +FROM node:18-alpine AS builder RUN apk add --no-cache bash python3 make g++ WORKDIR /app ADD ./ . RUN npm install RUN npm run build + +# Runtime stage - minimal +FROM node:18-alpine +RUN apk add --no-cache bash +WORKDIR /app +ADD ./ . +COPY --from=builder /app/node_modules /app/node_modules CMD ["npm", "start"] \ No newline at end of file From d3cdf101e23f3dd915ea90e4cecab513894a682c Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 28 Sep 2025 20:29:40 +0000 Subject: [PATCH 12/12] Final fix --- .github/workflows/docker-publish.yml | 7 ++++--- docker/Dockerfile | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 304610f..c8de5ac 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -34,7 +34,7 @@ jobs: push-to-ghcr: runs-on: ubuntu-latest - # if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' needs: build-test permissions: contents: read @@ -46,10 +46,11 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v3 - # 👆 This enables ARM emulation on AMD64 runner + # 👆 This is needed ARM emulation on AMD64 runner - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + # 👆 This is need for QEMU to work - name: Log in to GitHub Container Registry uses: docker/login-action@v3 @@ -74,7 +75,7 @@ jobs: context: . platforms: linux/amd64,linux/arm64 file: ./docker/Dockerfile - push: false + push: true tags: | ghcr.io/${{ env.LOWERCASE_REPO }}:latest ghcr.io/${{ env.LOWERCASE_REPO }}:${{ github.sha }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 156c449..27a28d5 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ # Using 18 alpine because supports arm/v8 and arm/v8 needed for silicon chips -# Builder stage with build tools +# Builder stage with build tools - especially for node-gyp in arm64 FROM node:18-alpine AS builder RUN apk add --no-cache bash python3 make g++ WORKDIR /app