From 890261c7da33da20fa92cc5d9c476fdb8fc95ae2 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Thu, 19 May 2022 15:11:00 +0200 Subject: [PATCH 01/20] feat: add multi arch docker build commands --- .circleci/config.yml | 34 +++++++++++++++++++++++++++------- docker/Dockerfile | 3 ++- docker/Dockerfile.cra-builder | 3 ++- docker/Dockerfile.cra-runtime | 3 ++- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7facad4..fbff6a7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,25 +25,45 @@ jobs: - image: circleci/node:lts steps: - checkout - - setup_remote_docker + - setup_remote_docker: + version: 20.10.14 + - run: + name: Install Docker buildx tool + command: | + mkdir -vp ~/.docker/cli-plugins/ + wget -O ~/.docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v0.7.0/buildx-v0.7.0.linux-amd64" + chmod a+x ~/.docker/cli-plugins/docker-buildx + cat /etc/os-release + docker version - run: name: Login to Docker Hub command: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - run: name: Set $DOCKER_TAG command: echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV + - run: + name: Create buildx + command: | + docker buildx create --use + docker run --privileged --rm tonistiigi/binfmt --install all - run: name: Build docker images command: | - docker build -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG . - docker build -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder . - docker build -f docker/Dockerfile.cra-runtime -t staticdeploy/app-server:$DOCKER_TAG-cra-runtime --build-arg DOCKER_TAG=$DOCKER_TAG . + docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-arm64 . + docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-amd64 . + docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 . + docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder-amd64 . + docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile.cra-runtime -t staticdeploy/app-server:$DOCKER_TAG-cra-runtime-arm64 --build-arg DOCKER_TAG=$DOCKER_TAG-arm64 . + docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile.cra-runtime -t staticdeploy/app-server:$DOCKER_TAG-cra-runtime-amd64 --build-arg DOCKER_TAG=$DOCKER_TAG-amd64 . - run: name: Push docker images command: | - docker push staticdeploy/app-server:$DOCKER_TAG - docker push staticdeploy/app-server:$DOCKER_TAG-cra-builder - docker push staticdeploy/app-server:$DOCKER_TAG-cra-runtime + docker manifest create $DOCKER_TAG --amend $DOCKER_TAG-arm64 --amend $DOCKER_TAG-amd64 + docker manifest push $DOCKER_TAG + docker manifest create $DOCKER_TAG-cra-builder --amend $DOCKER_TAG-cra-builder-arm64 --amend $DOCKER_TAG-cra-builder-amd64 + docker manifest push $DOCKER_TAG-cra-builder + docker manifest create $DOCKER_TAG-cra-runtime --amend $DOCKER_TAG-cra-runtime-arm64 --amend $DOCKER_TAG-cra-runtime-amd64 + docker manifest push $DOCKER_TAG-cra-runtime npm-publish: docker: - image: circleci/node:lts diff --git a/docker/Dockerfile b/docker/Dockerfile index 931f2f1..63c9ecc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,5 @@ -FROM node:lts-alpine +ARG BUILDPLATFORM +FROM --platform=${BUILDPLATFORM} node:lts-slim # Install app-server into directory /app-server WORKDIR /app-server diff --git a/docker/Dockerfile.cra-builder b/docker/Dockerfile.cra-builder index df9f26f..41c89a5 100644 --- a/docker/Dockerfile.cra-builder +++ b/docker/Dockerfile.cra-builder @@ -1,4 +1,5 @@ -FROM node:lts +ARG BUILDPLATFORM +FROM --platform=${BUILDPLATFORM} node:lts ONBUILD WORKDIR /app diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index 700d656..10f5003 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -1,5 +1,6 @@ ARG DOCKER_TAG -FROM staticdeploy/app-server:$DOCKER_TAG +ARG BUILDPLATFORM +FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG # Copy files from cra-runtime stage ONBUILD COPY --from=0 /app/build /build From 9e9bbc28fec2e6e92557e59284b23944bc024677 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 09:09:55 +0200 Subject: [PATCH 02/20] fix: add docker buildx context create --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fbff6a7..461c2a8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,7 +44,8 @@ jobs: - run: name: Create buildx command: | - docker buildx create --use + docker context create buildx-build + docker buildx create --use buildx-build docker run --privileged --rm tonistiigi/binfmt --install all - run: name: Build docker images From 621026e05043980e835edb74bd4d193e0db642b6 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 09:37:40 +0200 Subject: [PATCH 03/20] fix: replace apk with apt-get package manager --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 63c9ecc..8a8b1df 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,7 +12,7 @@ COPY bin ./bin/ # Install dependencies RUN yarn install --frozen-lockfile && \ # Install curl for performing healthchecks - apk add --no-cache curl && \ + apt-get update && apt install -y curl && \ # Compile code yarn compile && \ # Remove dev dependencies and other unnecessary files From 940f24eb4f0da1d9e6206e37a340bb754e6b20b9 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 09:50:55 +0200 Subject: [PATCH 04/20] chore: change remote container image --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 461c2a8..a8adcb4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,7 +22,7 @@ jobs: command: yarn publish-coverage docker-build-push: docker: - - image: circleci/node:lts + - image: docker:20 steps: - checkout - setup_remote_docker: From 17e505ab27ff39d95448cd8bba79c0b3ef65154c Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 10:01:01 +0200 Subject: [PATCH 05/20] fix: DOCKER_CLI_EXPERIMENTAL env --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a8adcb4..be6620d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,7 +22,7 @@ jobs: command: yarn publish-coverage docker-build-push: docker: - - image: docker:20 + - image: circleci/node:lts steps: - checkout - setup_remote_docker: @@ -44,12 +44,14 @@ jobs: - run: name: Create buildx command: | + export DOCKER_CLI_EXPERIMENTAL=enabled docker context create buildx-build docker buildx create --use buildx-build docker run --privileged --rm tonistiigi/binfmt --install all - run: name: Build docker images command: | + export DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-arm64 . docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-amd64 . docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 . From a5ce3e9e0b81e400228dc418715ca308edd153ec Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 10:10:37 +0200 Subject: [PATCH 06/20] fix: put DOCKER_CLI_EXPERIMENTAL env in right step --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index be6620d..65aed74 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -51,7 +51,6 @@ jobs: - run: name: Build docker images command: | - export DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-arm64 . docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-amd64 . docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 . @@ -61,6 +60,7 @@ jobs: - run: name: Push docker images command: | + export DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create $DOCKER_TAG --amend $DOCKER_TAG-arm64 --amend $DOCKER_TAG-amd64 docker manifest push $DOCKER_TAG docker manifest create $DOCKER_TAG-cra-builder --amend $DOCKER_TAG-cra-builder-arm64 --amend $DOCKER_TAG-cra-builder-amd64 From 91fe023ebd091607a64544586e5c5d8ae5040007 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 10:48:44 +0200 Subject: [PATCH 07/20] chore: docker login in push step --- .circleci/config.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 65aed74..1eb9e91 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -35,9 +35,6 @@ jobs: chmod a+x ~/.docker/cli-plugins/docker-buildx cat /etc/os-release docker version - - run: - name: Login to Docker Hub - command: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - run: name: Set $DOCKER_TAG command: echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV @@ -61,12 +58,14 @@ jobs: name: Push docker images command: | export DOCKER_CLI_EXPERIMENTAL=enabled + docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD docker manifest create $DOCKER_TAG --amend $DOCKER_TAG-arm64 --amend $DOCKER_TAG-amd64 docker manifest push $DOCKER_TAG docker manifest create $DOCKER_TAG-cra-builder --amend $DOCKER_TAG-cra-builder-arm64 --amend $DOCKER_TAG-cra-builder-amd64 docker manifest push $DOCKER_TAG-cra-builder docker manifest create $DOCKER_TAG-cra-runtime --amend $DOCKER_TAG-cra-runtime-arm64 --amend $DOCKER_TAG-cra-runtime-amd64 docker manifest push $DOCKER_TAG-cra-runtime + docker logout npm-publish: docker: - image: circleci/node:lts From ffa432e970bbb111ca998e316eb5fe9a23da6084 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Mon, 23 May 2022 12:27:15 +0200 Subject: [PATCH 08/20] build: docker login test --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1eb9e91..febb7a3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -35,6 +35,9 @@ jobs: chmod a+x ~/.docker/cli-plugins/docker-buildx cat /etc/os-release docker version + - run: + name: Login to Docker Hub + command: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - run: name: Set $DOCKER_TAG command: echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV From ae839e14402713fb70864247a46fc7dcbe125d6f Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 10:04:15 +0200 Subject: [PATCH 09/20] fix: add repo to docker manifest and push commands --- .circleci/config.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index febb7a3..a483e64 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -62,13 +62,12 @@ jobs: command: | export DOCKER_CLI_EXPERIMENTAL=enabled docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - docker manifest create $DOCKER_TAG --amend $DOCKER_TAG-arm64 --amend $DOCKER_TAG-amd64 - docker manifest push $DOCKER_TAG - docker manifest create $DOCKER_TAG-cra-builder --amend $DOCKER_TAG-cra-builder-arm64 --amend $DOCKER_TAG-cra-builder-amd64 - docker manifest push $DOCKER_TAG-cra-builder - docker manifest create $DOCKER_TAG-cra-runtime --amend $DOCKER_TAG-cra-runtime-arm64 --amend $DOCKER_TAG-cra-runtime-amd64 - docker manifest push $DOCKER_TAG-cra-runtime - docker logout + docker manifest create staticdeploy/app-server:$DOCKER_TAG --amend staticdeploy/app-server:$DOCKER_TAG-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-amd64 + docker manifest push staticdeploy/app-server:$DOCKER_TAG + docker manifest create staticdeploy/app-server:$DOCKER_TAG-cra-builder --amend staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-cra-builder-amd64 + docker manifest push staticdeploy/app-server:$DOCKER_TAG-cra-builder + docker manifest create staticdeploy/app-server:$DOCKER_TAG-cra-runtime --amend staticdeploy/app-server:$DOCKER_TAG-cra-runtime-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-cra-runtime-amd64 + docker manifest push staticdeploy/app-server:$DOCKER_TAG-cra-runtime npm-publish: docker: - image: circleci/node:lts From c2d5abc9e0e3377a788edb65711c8b144bcdbe97 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 10:16:24 +0200 Subject: [PATCH 10/20] chore: last ci changes --- .circleci/config.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a483e64..06ff9b1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,11 +40,12 @@ jobs: command: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - run: name: Set $DOCKER_TAG - command: echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV + command: | + echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV + echo 'export DOCKER_CLI_EXPERIMENTAL=enabled' >> $BASH_ENV - run: name: Create buildx command: | - export DOCKER_CLI_EXPERIMENTAL=enabled docker context create buildx-build docker buildx create --use buildx-build docker run --privileged --rm tonistiigi/binfmt --install all @@ -60,8 +61,6 @@ jobs: - run: name: Push docker images command: | - export DOCKER_CLI_EXPERIMENTAL=enabled - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD docker manifest create staticdeploy/app-server:$DOCKER_TAG --amend staticdeploy/app-server:$DOCKER_TAG-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-amd64 docker manifest push staticdeploy/app-server:$DOCKER_TAG docker manifest create staticdeploy/app-server:$DOCKER_TAG-cra-builder --amend staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-cra-builder-amd64 From f604b0857dad2a13e406159273ccf7e2895d7ff3 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 10:52:09 +0200 Subject: [PATCH 11/20] chore: removing docker context create command --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 06ff9b1..4979ee7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,8 +46,7 @@ jobs: - run: name: Create buildx command: | - docker context create buildx-build - docker buildx create --use buildx-build + docker buildx create --use docker run --privileged --rm tonistiigi/binfmt --install all - run: name: Build docker images From 8512ed8d57bf861af1ca30080e1007d12970f0f0 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 10:59:06 +0200 Subject: [PATCH 12/20] chore: test with docker env vars --- .circleci/config.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4979ee7..30c5f38 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,6 +43,10 @@ jobs: command: | echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV echo 'export DOCKER_CLI_EXPERIMENTAL=enabled' >> $BASH_ENV + echo 'export DOCKER_TLS_CERTDIR: ""' >> $BASH_ENV + echo 'export DOCKER_HOST: tcp://localhost:2375' >> $BASH_ENV + echo 'export DOCKER_VERSION: "20"' >> $BASH_ENV + echo 'export DOCKER_DRIVER: overlay2' >> $BASH_ENV - run: name: Create buildx command: | From 360c20d2d7f58da7a5547d91e48e52570e0aeb31 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 11:00:53 +0200 Subject: [PATCH 13/20] fix: miscofiguration --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 30c5f38..6fac678 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,10 +43,10 @@ jobs: command: | echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV echo 'export DOCKER_CLI_EXPERIMENTAL=enabled' >> $BASH_ENV - echo 'export DOCKER_TLS_CERTDIR: ""' >> $BASH_ENV - echo 'export DOCKER_HOST: tcp://localhost:2375' >> $BASH_ENV - echo 'export DOCKER_VERSION: "20"' >> $BASH_ENV - echo 'export DOCKER_DRIVER: overlay2' >> $BASH_ENV + echo 'export DOCKER_TLS_CERTDIR=""' >> $BASH_ENV + echo 'export DOCKER_HOST=tcp://localhost:2375' >> $BASH_ENV + echo 'export DOCKER_VERSION="20"' >> $BASH_ENV + echo 'export DOCKER_DRIVER=overlay2' >> $BASH_ENV - run: name: Create buildx command: | From ae8cde3ac03bbae91fc191577540aad7a46364b4 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 12:09:54 +0200 Subject: [PATCH 14/20] chore: trigger image build --- .circleci/config.yml | 7 ++----- docker/Dockerfile.cra-runtime | 7 ++++--- dummy | 0 3 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 dummy diff --git a/.circleci/config.yml b/.circleci/config.yml index 6fac678..06ff9b1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,14 +43,11 @@ jobs: command: | echo 'export DOCKER_TAG=${CIRCLE_TAG:-$CIRCLE_BRANCH}' >> $BASH_ENV echo 'export DOCKER_CLI_EXPERIMENTAL=enabled' >> $BASH_ENV - echo 'export DOCKER_TLS_CERTDIR=""' >> $BASH_ENV - echo 'export DOCKER_HOST=tcp://localhost:2375' >> $BASH_ENV - echo 'export DOCKER_VERSION="20"' >> $BASH_ENV - echo 'export DOCKER_DRIVER=overlay2' >> $BASH_ENV - run: name: Create buildx command: | - docker buildx create --use + docker context create buildx-build + docker buildx create --use buildx-build docker run --privileged --rm tonistiigi/binfmt --install all - run: name: Build docker images diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index 10f5003..1e9ce97 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -1,7 +1,8 @@ ARG DOCKER_TAG ARG BUILDPLATFORM -FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG +FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG as build # Copy files from cra-runtime stage -ONBUILD COPY --from=0 /app/build /build -ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js +ONBUILD COPY --from=build /app/build /build +ONBUILD COPY --from=build /app/app-server.config.js /app-server.config.js +COPY ./dummy ./dummy diff --git a/dummy b/dummy new file mode 100644 index 0000000..e69de29 From 62c972f23a3b88fbb023e1f8696d622ff0956ee3 Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 12:21:39 +0200 Subject: [PATCH 15/20] fix: runtime image dockerfile --- docker/Dockerfile.cra-runtime | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index 1e9ce97..bdf613c 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -1,8 +1,8 @@ ARG DOCKER_TAG ARG BUILDPLATFORM -FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG as build +FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG # Copy files from cra-runtime stage -ONBUILD COPY --from=build /app/build /build -ONBUILD COPY --from=build /app/app-server.config.js /app-server.config.js -COPY ./dummy ./dummy +ONBUILD COPY --from=0 /app/build /build +ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js +COPY ./dummy ./dummy \ No newline at end of file From 4244a14c7986f1f3a2e18f0cf820a22e2c7943ae Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 12:41:32 +0200 Subject: [PATCH 16/20] chore: trigger image build --- docker/Dockerfile.cra-builder | 4 +++- docker/Dockerfile.cra-runtime | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile.cra-builder b/docker/Dockerfile.cra-builder index 41c89a5..c932fa0 100644 --- a/docker/Dockerfile.cra-builder +++ b/docker/Dockerfile.cra-builder @@ -5,7 +5,6 @@ ONBUILD WORKDIR /app # Copy source files ONBUILD COPY . . - # Create an empty app-server.config.js file if it doesn't exist ONBUILD RUN if [ ! -f app-server.config.js ]; then echo "module.exports={};" > app-server.config.js; fi @@ -18,3 +17,6 @@ ONBUILD RUN if [ -f yarn.lock ]; then yarn install; else npm install; fi # Build the app ONBUILD RUN yarn build + +# workaround https://github.com/moby/buildkit/issues/816 +COPY ./dummy ./dummy \ No newline at end of file diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index bdf613c..26234a2 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -3,6 +3,6 @@ ARG BUILDPLATFORM FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG # Copy files from cra-runtime stage +COPY --from=0 /app/dummy /app/dummy ONBUILD COPY --from=0 /app/build /build -ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js -COPY ./dummy ./dummy \ No newline at end of file +ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js \ No newline at end of file From d436a8cde41b591d8399bc76e73d889c90e0dadf Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 12:52:51 +0200 Subject: [PATCH 17/20] chore: trigger image build --- docker/Dockerfile.cra-runtime | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index 26234a2..3825782 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -3,6 +3,5 @@ ARG BUILDPLATFORM FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG # Copy files from cra-runtime stage -COPY --from=0 /app/dummy /app/dummy ONBUILD COPY --from=0 /app/build /build ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js \ No newline at end of file From a92d5e4f796a2792eb789cbc2d6c869f818dc40e Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 14:28:43 +0200 Subject: [PATCH 18/20] chore: trigger ci jobs --- .circleci/config.yml | 12 ++++-------- docker/Dockerfile.cra-builder | 9 +++------ docker/Dockerfile.cra-runtime | 2 +- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 06ff9b1..36defd1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,19 +54,15 @@ jobs: command: | docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-arm64 . docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile -t staticdeploy/app-server:$DOCKER_TAG-amd64 . - docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 . - docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder-amd64 . - docker buildx build --platform=linux/arm64/v8 --build-arg BUILDPLATFORM=linux/arm64/v8 --push -f docker/Dockerfile.cra-runtime -t staticdeploy/app-server:$DOCKER_TAG-cra-runtime-arm64 --build-arg DOCKER_TAG=$DOCKER_TAG-arm64 . - docker buildx build --platform=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --push -f docker/Dockerfile.cra-runtime -t staticdeploy/app-server:$DOCKER_TAG-cra-runtime-amd64 --build-arg DOCKER_TAG=$DOCKER_TAG-amd64 . + docker build -f docker/Dockerfile.cra-builder -t staticdeploy/app-server:$DOCKER_TAG-cra-builder . + docker build -f docker/Dockerfile.cra-runtime -t staticdeploy/app-server:$DOCKER_TAG-cra-runtime --build-arg DOCKER_TAG=$DOCKER_TAG . - run: name: Push docker images command: | docker manifest create staticdeploy/app-server:$DOCKER_TAG --amend staticdeploy/app-server:$DOCKER_TAG-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-amd64 docker manifest push staticdeploy/app-server:$DOCKER_TAG - docker manifest create staticdeploy/app-server:$DOCKER_TAG-cra-builder --amend staticdeploy/app-server:$DOCKER_TAG-cra-builder-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-cra-builder-amd64 - docker manifest push staticdeploy/app-server:$DOCKER_TAG-cra-builder - docker manifest create staticdeploy/app-server:$DOCKER_TAG-cra-runtime --amend staticdeploy/app-server:$DOCKER_TAG-cra-runtime-arm64 --amend staticdeploy/app-server:$DOCKER_TAG-cra-runtime-amd64 - docker manifest push staticdeploy/app-server:$DOCKER_TAG-cra-runtime + docker push staticdeploy/app-server:$DOCKER_TAG-cra-builder + docker push staticdeploy/app-server:$DOCKER_TAG-cra-runtime npm-publish: docker: - image: circleci/node:lts diff --git a/docker/Dockerfile.cra-builder b/docker/Dockerfile.cra-builder index c932fa0..4924b93 100644 --- a/docker/Dockerfile.cra-builder +++ b/docker/Dockerfile.cra-builder @@ -1,10 +1,10 @@ -ARG BUILDPLATFORM -FROM --platform=${BUILDPLATFORM} node:lts +FROM node:lts ONBUILD WORKDIR /app # Copy source files ONBUILD COPY . . + # Create an empty app-server.config.js file if it doesn't exist ONBUILD RUN if [ ! -f app-server.config.js ]; then echo "module.exports={};" > app-server.config.js; fi @@ -16,7 +16,4 @@ ONBUILD ENV PUBLIC_URL . ONBUILD RUN if [ -f yarn.lock ]; then yarn install; else npm install; fi # Build the app -ONBUILD RUN yarn build - -# workaround https://github.com/moby/buildkit/issues/816 -COPY ./dummy ./dummy \ No newline at end of file +ONBUILD RUN yarn build \ No newline at end of file diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index 3825782..0817e1b 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -1,6 +1,6 @@ ARG DOCKER_TAG ARG BUILDPLATFORM -FROM --platform=${BUILDPLATFORM} staticdeploy/app-server:$DOCKER_TAG +FROM staticdeploy/app-server:$DOCKER_TAG-amd64 # Copy files from cra-runtime stage ONBUILD COPY --from=0 /app/build /build From b0b758d493ee9b6dea890a101432e0954ec4f05c Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 14:45:26 +0200 Subject: [PATCH 19/20] chore: clean dockerfile --- docker/Dockerfile.cra-builder | 2 +- docker/Dockerfile.cra-runtime | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile.cra-builder b/docker/Dockerfile.cra-builder index 4924b93..df9f26f 100644 --- a/docker/Dockerfile.cra-builder +++ b/docker/Dockerfile.cra-builder @@ -16,4 +16,4 @@ ONBUILD ENV PUBLIC_URL . ONBUILD RUN if [ -f yarn.lock ]; then yarn install; else npm install; fi # Build the app -ONBUILD RUN yarn build \ No newline at end of file +ONBUILD RUN yarn build diff --git a/docker/Dockerfile.cra-runtime b/docker/Dockerfile.cra-runtime index 0817e1b..7f031d9 100644 --- a/docker/Dockerfile.cra-runtime +++ b/docker/Dockerfile.cra-runtime @@ -1,7 +1,6 @@ ARG DOCKER_TAG -ARG BUILDPLATFORM FROM staticdeploy/app-server:$DOCKER_TAG-amd64 # Copy files from cra-runtime stage ONBUILD COPY --from=0 /app/build /build -ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js \ No newline at end of file +ONBUILD COPY --from=0 /app/app-server.config.js /app-server.config.js From 3fafd2bfaea9aede031b87588df27a6686bebedf Mon Sep 17 00:00:00 2001 From: gabbosam Date: Wed, 25 May 2022 14:46:53 +0200 Subject: [PATCH 20/20] chore: remove unsed file --- dummy | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dummy diff --git a/dummy b/dummy deleted file mode 100644 index e69de29..0000000