Build docker image for multiple architectures including ARM

This is based on https://www.docker.com/blog/faster-multi-platform-builds-dockerfile-cross-compilation-guide/ which doesn't use QEMU
This commit is contained in:
Hugh Nimmo-Smith 2023-01-19 17:07:55 +00:00
parent 8ee62c3a92
commit b993bc0955
3 changed files with 9 additions and 3 deletions

View File

@ -23,6 +23,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@v2
with:
@ -42,3 +45,4 @@ jobs:
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64,linux/arm/v7

View File

@ -1,4 +1,4 @@
FROM docker.io/node:alpine as builder
FROM --platform=${BUILDPLATFORM} docker.io/node:alpine as builder
RUN apk add --no-cache git python3 build-base
WORKDIR /app
@ -10,7 +10,7 @@ RUN yarn install
COPY . /app
RUN yarn build
FROM docker.io/nginx:alpine
FROM --platform=${BUILDPLATFORM} docker.io/nginx:alpine
# Copy the dynamic config script
COPY ./docker/dynamic-config.sh /docker-entrypoint.d/99-dynamic-config.sh

View File

@ -35,7 +35,9 @@ To stop the container, simply hit `ctrl+c`.
In this repository, create a Docker image:
```
```sh
# Enable BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/
export DOCKER_BUILDKIT=1
docker build -t hydrogen .
```