-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Uses QEMU to build the docker images on amd64 architectures, such that Docker Hub can build the images.
- Loading branch information
Showing
3 changed files
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
FROM alpine:3.12 AS builder | ||
|
||
# Download QEMU, see https://github.com/docker/hub-feedback/issues/1261 | ||
RUN QEMU_URL=https://github.com/balena-io/qemu/releases/download/v5.2.0%2Bbalena4/qemu-5.2.0.balena4-arm.tar.gz \ | ||
&& apk add curl && curl -L $QEMU_URL | tar zxvf - -C . --strip-components 1 | ||
|
||
# Start second (arm32v7) stage | ||
FROM arm32v7/alpine:3.12 | ||
|
||
# Add QEMU from build stage | ||
COPY --from=builder qemu-arm-static /usr/bin | ||
|
||
# Install Node and Yarn | ||
RUN apk add --update --no-cache nodejs npm yarn | ||
|
||
# Define some ENV Vars | ||
ENV PORT=80 \ | ||
DIRECTORY=/app \ | ||
IS_DOCKER=true | ||
|
||
# Create and set the working directory | ||
WORKDIR ${DIRECTORY} | ||
|
||
# Copy over both 'package.json' and 'package-lock.json' (if available) | ||
COPY package*.json ./ | ||
|
||
# Install project dependencies | ||
RUN yarn | ||
|
||
# Copy over all project files and folders to the working directory | ||
COPY . . | ||
|
||
# Build initial app for production | ||
RUN yarn build | ||
|
||
# Expose given port | ||
EXPOSE ${PORT} | ||
|
||
# Finally, run start command to serve up the built application | ||
CMD [ "yarn", "build-and-start"] | ||
|
||
# Run simple healthchecks every 5 mins, to check the Dashy's everythings great | ||
HEALTHCHECK --interval=5m --timeout=2s --start-period=30s CMD yarn health-check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
FROM alpine:3.12 AS builder | ||
|
||
# Download QEMU, see https://github.com/docker/hub-feedback/issues/1261 | ||
RUN QEMU_URL=https://github.com/balena-io/qemu/releases/download/v5.2.0%2Bbalena4/qemu-5.2.0.balena4-arm.tar.gz \ | ||
&& apk add curl && curl -L $QEMU_URL | tar zxvf - -C . --strip-components 1 | ||
|
||
# Start second (arm64v8) stage | ||
FROM arm64v8/alpine:3.12 | ||
|
||
# Add QEMU from build stage | ||
COPY --from=builder qemu-arm-static /usr/bin | ||
|
||
# Install Node and Yarn | ||
RUN apk add --update --no-cache nodejs npm yarn | ||
|
||
# Define some ENV Vars | ||
ENV PORT=80 \ | ||
DIRECTORY=/app \ | ||
IS_DOCKER=true | ||
|
||
# Create and set the working directory | ||
WORKDIR ${DIRECTORY} | ||
|
||
# Copy over both 'package.json' and 'package-lock.json' (if available) | ||
COPY package*.json ./ | ||
|
||
# Install project dependencies | ||
RUN yarn | ||
|
||
# Copy over all project files and folders to the working directory | ||
COPY . . | ||
|
||
# Build initial app for production | ||
RUN yarn build | ||
|
||
# Expose given port | ||
EXPOSE ${PORT} | ||
|
||
# Finally, run start command to serve up the built application | ||
CMD [ "yarn", "build-and-start"] | ||
|
||
# Run simple healthchecks every 5 mins, to check the Dashy's everythings great | ||
HEALTHCHECK --interval=5m --timeout=2s --start-period=30s CMD yarn health-check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
# Source: https://github.com/ckulka/docker-multi-arch-example/blob/master/hooks/pre_build | ||
# Used to setup QEMU to build arm images on amd64 processors. | ||
|
||
# Register qemu-*-static for all supported processors except the | ||
# current one, but also remove all registered binfmt_misc before | ||
docker run --rm --privileged multiarch/qemu-user-static:register --reset |