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.18.0 \ 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.18.0 \ 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"]