summaryrefslogtreecommitdiffstats
path: root/Dockerfile.arm64v8
blob: bff3c71d92674cb88206f032cecb5d9daa534a73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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.3 \
    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"]