From 9fcdac56cbfc1b79c69a529d85d34e3c6f6ab27c Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 18:53:49 +0800 Subject: [PATCH 1/8] Add build step for Docker container --- .woodpecker/.build.yml | 19 +++++++++++++++++++ Dockerfile | 15 +++++++++++++++ nginx/nginx.conf | 12 ++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 .woodpecker/.build.yml create mode 100644 Dockerfile create mode 100644 nginx/nginx.conf diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml new file mode 100644 index 0000000..3e04017 --- /dev/null +++ b/.woodpecker/.build.yml @@ -0,0 +1,19 @@ +steps: + - name: build + image: node:18-alpine + when: + - branch: master + event: push + commands: + - docker build -t "$REGISTRY_IMAGE_TAG" . + - echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME" + - docker push "$FORGEJO_REGISTRY_URL" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + secrets: + [ + FORGEJO_REGISTRY_URL, + FORGEJO_REGISTRY_USERNAME, + FORGEJO_REGISTRY_PASSWORD, + REGISTRY_IMAGE_TAG, + ] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..78809ac --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:18-alpine as build + +WORKDIR /usr/local/app +COPY ./ /usr/local/app/ +RUN npm install +RUN chmod +x /usr/local/app/build.sh +RUN /usr/local/app/build.sh + +FROM nginx:latest +RUN rm -rf /usr/share/nginx/html/* +COPY --from=build /usr/local/app/ /usr/share/nginx/html +COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf +RUN service nginx restart + +EXPOSE 80 diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..e1d6d00 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,12 @@ +server { + listen 80; + sendfile on; + default_type application/octet-stream; + gzip on; + + root /usr/share/nginx/build; + + location / { + try_files $uri $uri/ /index.html =404; + } +} \ No newline at end of file From e9b17e066ee7a6468e8296c9f361acffd70f10c7 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 18:55:55 +0800 Subject: [PATCH 2/8] Update build step --- .woodpecker/.build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index 3e04017..ec440f5 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -1,6 +1,6 @@ steps: - name: build - image: node:18-alpine + image: docker when: - branch: master event: push From af5247571f21f20add4980994f85f2d4d61a1815 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 19:01:21 +0800 Subject: [PATCH 3/8] Update build step --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 78809ac..dad8766 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,7 @@ FROM node:18-alpine as build WORKDIR /usr/local/app COPY ./ /usr/local/app/ RUN npm install -RUN chmod +x /usr/local/app/build.sh -RUN /usr/local/app/build.sh +RUN npm run build FROM nginx:latest RUN rm -rf /usr/share/nginx/html/* From 78e64eb00beba73efb0e7370c27d8c0be86d4956 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 19:03:44 +0800 Subject: [PATCH 4/8] Update build step --- .woodpecker/.build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index ec440f5..464a771 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -7,7 +7,7 @@ steps: commands: - docker build -t "$REGISTRY_IMAGE_TAG" . - echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME" - - docker push "$FORGEJO_REGISTRY_URL" + - docker push "$REGISTRY_IMAGE_TAG" volumes: - /var/run/docker.sock:/var/run/docker.sock secrets: From 4fe861d2cc715be62545cf05a7f72af37e3dfa97 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 19:08:41 +0800 Subject: [PATCH 5/8] Create builds for arm64 and x86 --- .woodpecker/.build_arm64.yml | 22 ++++++++++++++++++++++ .woodpecker/{.build.yml => .build_x86.yml} | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 .woodpecker/.build_arm64.yml rename .woodpecker/{.build.yml => .build_x86.yml} (94%) diff --git a/.woodpecker/.build_arm64.yml b/.woodpecker/.build_arm64.yml new file mode 100644 index 0000000..cd030e0 --- /dev/null +++ b/.woodpecker/.build_arm64.yml @@ -0,0 +1,22 @@ +labels: + platform: linux/aarch64 + +steps: + - name: build + image: docker + when: + - branch: master + event: push + commands: + - docker build -t "$REGISTRY_IMAGE_TAG" . + - echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME" + - docker push "$REGISTRY_IMAGE_TAG" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + secrets: + [ + FORGEJO_REGISTRY_URL, + FORGEJO_REGISTRY_USERNAME, + FORGEJO_REGISTRY_PASSWORD, + REGISTRY_IMAGE_TAG, + ] diff --git a/.woodpecker/.build.yml b/.woodpecker/.build_x86.yml similarity index 94% rename from .woodpecker/.build.yml rename to .woodpecker/.build_x86.yml index 464a771..67c27c7 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build_x86.yml @@ -1,3 +1,6 @@ +labels: + platform: linux/amd64 + steps: - name: build image: docker From 354cf63f1813e2c353dff1167655dfff639c02d3 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 19:19:43 +0800 Subject: [PATCH 6/8] Optimize Dockerfile and revert to single build platform --- .woodpecker/{.build_arm64.yml => .build.yml} | 0 .woodpecker/.build_x86.yml | 22 -------------------- Dockerfile | 2 +- 3 files changed, 1 insertion(+), 23 deletions(-) rename .woodpecker/{.build_arm64.yml => .build.yml} (100%) delete mode 100644 .woodpecker/.build_x86.yml diff --git a/.woodpecker/.build_arm64.yml b/.woodpecker/.build.yml similarity index 100% rename from .woodpecker/.build_arm64.yml rename to .woodpecker/.build.yml diff --git a/.woodpecker/.build_x86.yml b/.woodpecker/.build_x86.yml deleted file mode 100644 index 67c27c7..0000000 --- a/.woodpecker/.build_x86.yml +++ /dev/null @@ -1,22 +0,0 @@ -labels: - platform: linux/amd64 - -steps: - - name: build - image: docker - when: - - branch: master - event: push - commands: - - docker build -t "$REGISTRY_IMAGE_TAG" . - - echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME" - - docker push "$REGISTRY_IMAGE_TAG" - volumes: - - /var/run/docker.sock:/var/run/docker.sock - secrets: - [ - FORGEJO_REGISTRY_URL, - FORGEJO_REGISTRY_USERNAME, - FORGEJO_REGISTRY_PASSWORD, - REGISTRY_IMAGE_TAG, - ] diff --git a/Dockerfile b/Dockerfile index dad8766..2a4b21b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN npm run build FROM nginx:latest RUN rm -rf /usr/share/nginx/html/* -COPY --from=build /usr/local/app/ /usr/share/nginx/html +COPY --from=build /usr/local/app/build/ /usr/share/nginx/html COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf RUN service nginx restart From f8277e7e72376874c01847f110edd42f460f38d3 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 19:29:15 +0800 Subject: [PATCH 7/8] Set platform in build.yml --- .woodpecker/.build.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index cd030e0..f869fea 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -1,6 +1,3 @@ -labels: - platform: linux/aarch64 - steps: - name: build image: docker @@ -8,7 +5,7 @@ steps: - branch: master event: push commands: - - docker build -t "$REGISTRY_IMAGE_TAG" . + - docker build -t "$REGISTRY_IMAGE_TAG" --platform linux/arm64 . - echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME" - docker push "$REGISTRY_IMAGE_TAG" volumes: From 28756d2a86cc1ffcf4eb0241bb3708f10c900f84 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 17 Oct 2024 19:36:46 +0800 Subject: [PATCH 8/8] Set build step to run on x86 --- .woodpecker/.build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index f869fea..67c27c7 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -1,3 +1,6 @@ +labels: + platform: linux/amd64 + steps: - name: build image: docker @@ -5,7 +8,7 @@ steps: - branch: master event: push commands: - - docker build -t "$REGISTRY_IMAGE_TAG" --platform linux/arm64 . + - docker build -t "$REGISTRY_IMAGE_TAG" . - echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME" - docker push "$REGISTRY_IMAGE_TAG" volumes: