From 8a111fb1b5d8843bc21884faf8a1ba4447ec93c7 Mon Sep 17 00:00:00 2001 From: Lucas Declercq Date: Mon, 18 Sep 2023 13:08:32 +0200 Subject: [PATCH] ci: build multi-arch image --- .github/workflows/docker-image-arm.yml | 30 -------------------------- .github/workflows/docker-image.yml | 6 ++++++ Dockerfile | 13 ++++++++--- Dockerfile-arm | 21 ------------------ 4 files changed, 16 insertions(+), 54 deletions(-) delete mode 100644 .github/workflows/docker-image-arm.yml delete mode 100644 Dockerfile-arm diff --git a/.github/workflows/docker-image-arm.yml b/.github/workflows/docker-image-arm.yml deleted file mode 100644 index e5a7f4d..0000000 --- a/.github/workflows/docker-image-arm.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Docker CI Unstable ARM -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Login to Docker Hub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} - - name: Build and push Docker image for ARM - uses: docker/build-push-action@v2 - with: - context: . - file: ./Dockerfile-arm - push: true - tags: cyfershepard/jellystat:arm - platforms: linux/arm/v7 diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index d390393..c654d31 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -11,6 +11,11 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v2 + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: @@ -21,4 +26,5 @@ jobs: with: context: . push: true + platforms: linux/amd64,linux/arm64,linux/arm/v7 tags: cyfershepard/jellystat:latest diff --git a/Dockerfile b/Dockerfile index 631350d..87defa2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,21 @@ -FROM node:slim +# Stage 1: Build the application +FROM node:slim AS builder -RUN mkdir /app WORKDIR /app COPY package*.json ./ +RUN npm cache clean --force RUN npm install COPY ./ ./ +# Stage 2: Create the production image +FROM node:slim + +WORKDIR /app + +COPY --from=builder /app . + EXPOSE 3000 CMD ["npm", "run", "start-app"] - diff --git a/Dockerfile-arm b/Dockerfile-arm deleted file mode 100644 index bbe909f..0000000 --- a/Dockerfile-arm +++ /dev/null @@ -1,21 +0,0 @@ -# Stage 1: Build the application -FROM arm32v7/node:14 AS builder - -WORKDIR /app - -COPY package*.json ./ -RUN npm cache clean --force -RUN npm install - -COPY ./ ./ - -# Stage 2: Create the production image -FROM arm32v7/node:14-slim - -WORKDIR /app - -COPY --from=builder /app . - -EXPOSE 3000 - -CMD ["npm", "run", "start-app"]