From 72c1c49da357a089598503c94f8b451a281bbf78 Mon Sep 17 00:00:00 2001 From: thewoosterisroot Date: Thu, 16 Apr 2020 19:30:50 +0200 Subject: Adding dockerfiles for multi-arch builds and manifest. --- Dockerfile.arm64v8 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Dockerfile.arm64v8 (limited to 'Dockerfile.arm64v8') diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8 new file mode 100644 index 00000000..35440ddc --- /dev/null +++ b/Dockerfile.arm64v8 @@ -0,0 +1,77 @@ +FROM amd64/alpine:3.7 AS builder + +# Set the environment variables for builder +ENV QEMU_VERSION=v4.2.0-6 \ + QEMU_ARCHITECTURE=aarch64 \ + NODE_ARCHITECTURE=linux-arm64 \ + NODE_VERSION=v12.16.1 \ + WEKAN_VERSION=3.96 \ + WEKAN_ARCHITECTURE=arm64 + + # Install dependencies +RUN apk update && apk add ca-certificates outils-sha1 && \ + \ + # Download qemu static for our architecture + wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-${QEMU_ARCHITECTURE}-static.tar.gz -O - | tar -xz && \ + \ + # Download wekan and shasum + wget https://releases.wekan.team/raspi3/wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip && \ + wget https://releases.wekan.team/raspi3/SHA256SUMS.txt && \ + # Verify wekan + grep wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip SHA256SUMS.txt | sha256sum -c - && \ + \ + # Unzip wekan + unzip wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip && \ + \ + # Download node and shasums + wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \ + wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \ + \ + # Verify nodejs authenticity + grep node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | sha256sum -c - && \ + \ + # Extract node and remove tar.gz + tar xvzf node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz + +# Build wekan dockerfile +FROM arm64v8/ubuntu:19.10 +LABEL maintainer="wekan" + +# Set the environment variables (defaults where required) +ENV QEMU_ARCHITECTURE=aarch64 \ + NODE_ARCHITECTURE=linux-arm64 \ + NODE_VERSION=v12.16.1 \ + NODE_ENV=production \ + NPM_VERSION=latest \ + WITH_API=true \ + PORT=8080 \ + ROOT_URL=http://localhost \ + MONGO_URL=mongodb://127.0.0.1:27017/wekan + +# Copy qemu-static to image +COPY --from=builder qemu-${QEMU_ARCHITECTURE}-static /usr/bin + +# Copy the app to the image +COPY --from=builder bundle /home/wekan/bundle + +# Copy +COPY --from=builder node-${NODE_VERSION}-${NODE_ARCHITECTURE} /opt/nodejs + +RUN \ + set -o xtrace && \ + # Add non-root user wekan + useradd --user-group --system --home-dir /home/wekan wekan && \ + \ + # Install Node + ln -s /opt/nodejs/bin/node /usr/bin/node && \ + ln -s /opt/nodejs/bin/npm /usr/bin/npm && \ + mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/8.16.1 /home/wekan/.config && \ + chown wekan --recursive /home/wekan/.config && \ + \ + # Install Node dependencies + npm install -g npm@${NPM_VERSION} + +EXPOSE $PORT +USER wekan + +CMD ["node", "/home/wekan/bundle/main.js"] -- cgit v1.2.3-1-g7c22