mirror of https://github.com/xwiki-labs/cryptpad
refactor docker to support arm32/arm64/amd64 all in one build
This commit is contained in:
parent
20959f84ae
commit
9261aa193b
56
Dockerfile
56
Dockerfile
|
@ -1,20 +1,48 @@
|
||||||
FROM node:6-alpine
|
FROM node:6-stretch-slim
|
||||||
|
|
||||||
COPY . /cryptpad
|
|
||||||
WORKDIR /cryptpad
|
|
||||||
|
|
||||||
RUN apk add --no-cache git tini \
|
|
||||||
&& npm install --production \
|
|
||||||
&& npm install -g bower \
|
|
||||||
&& bower install --allow-root
|
|
||||||
|
|
||||||
EXPOSE 3000 3001
|
|
||||||
|
|
||||||
VOLUME /cryptpad/datastore
|
|
||||||
VOLUME /cryptpad/customize
|
|
||||||
|
|
||||||
|
# You want USE_SSL=true if not putting cryptpad behind a proxy
|
||||||
ENV USE_SSL=false
|
ENV USE_SSL=false
|
||||||
ENV STORAGE=\'./storage/file\'
|
ENV STORAGE=\'./storage/file\'
|
||||||
ENV LOG_TO_STDOUT=true
|
ENV LOG_TO_STDOUT=true
|
||||||
|
|
||||||
|
# Persistent storage needs
|
||||||
|
VOLUME /cryptpad/datastore
|
||||||
|
VOLUME /cryptpad/customize
|
||||||
|
VOLUME /cryptpad/blobstage
|
||||||
|
VOLUME /cryptpad/pins
|
||||||
|
VOLUME /cryptpad/tasks
|
||||||
|
VOLUME /cryptpad/block
|
||||||
|
|
||||||
|
# Required packages
|
||||||
|
# jq is a build only dependency, removed in cleanup stage
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
git jq python
|
||||||
|
|
||||||
|
# Install tini for faux init
|
||||||
|
# sleep 1 is to ensure overlay2 can catch up with the copy prior to running chmod
|
||||||
|
COPY ./docker-install-tini.sh /
|
||||||
|
RUN chmod a+x /docker-install-tini.sh \
|
||||||
|
&& sleep 1 \
|
||||||
|
&& /docker-install-tini.sh \
|
||||||
|
&& rm /docker-install-tini.sh
|
||||||
|
|
||||||
|
# Cleanup apt
|
||||||
|
RUN apt-get remove -y --purge jq python \
|
||||||
|
&& apt-get auto-remove -y \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install cryptpad
|
||||||
|
COPY . /cryptpad
|
||||||
|
WORKDIR /cryptpad
|
||||||
|
RUN npm install --production \
|
||||||
|
&& npm install -g bower \
|
||||||
|
&& bower install --allow-root
|
||||||
|
|
||||||
|
# Unsafe / Safe ports
|
||||||
|
EXPOSE 3000 3001
|
||||||
|
|
||||||
|
# Run cryptpad on startup
|
||||||
CMD ["/sbin/tini", "--", "/cryptpad/container-start.sh"]
|
CMD ["/sbin/tini", "--", "/cryptpad/container-start.sh"]
|
||||||
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
FROM arm64v8/node:6
|
|
||||||
|
|
||||||
COPY . /cryptpad
|
|
||||||
WORKDIR /cryptpad
|
|
||||||
|
|
||||||
RUN npm config set unsafe-perm true
|
|
||||||
|
|
||||||
ADD https://github.com/krallin/tini/releases/download/v0.18.0/tini-static-arm64 /sbin/tini
|
|
||||||
RUN chmod a+x /sbin/tini
|
|
||||||
|
|
||||||
RUN apt install -y git \
|
|
||||||
&& npm install --production \
|
|
||||||
&& npm install -g bower \
|
|
||||||
&& bower install --allow-root
|
|
||||||
|
|
||||||
EXPOSE 3000 3001
|
|
||||||
|
|
||||||
VOLUME /cryptpad/datastore
|
|
||||||
VOLUME /cryptpad/customize
|
|
||||||
|
|
||||||
ENV USE_SSL=false
|
|
||||||
ENV STORAGE=\'./storage/file\'
|
|
||||||
ENV LOG_TO_STDOUT=true
|
|
||||||
|
|
||||||
CMD ["/sbin/tini", "--", "/cryptpad/container-start.sh"]
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Figure out latest release via GitHub API
|
||||||
|
release=$(curl --silent "https://api.github.com/repos/krallin/tini/releases/latest" | jq -r .tag_name)
|
||||||
|
|
||||||
|
# _Reliable_ way to get which arch for tini download
|
||||||
|
arch=$(python <<EOF
|
||||||
|
from __future__ import print_function
|
||||||
|
import platform
|
||||||
|
processor = platform.machine()
|
||||||
|
if processor == 'aarch64':
|
||||||
|
print('arm64', end='')
|
||||||
|
elif processor == 'x86 64' or processor == 'x86_64':
|
||||||
|
print('amd64', end='')
|
||||||
|
elif processor == 'armv7l':
|
||||||
|
print('armhf', end='')
|
||||||
|
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
# Download/install tini
|
||||||
|
curl -L https://github.com/krallin/tini/releases/download/$release/tini-static-$arch \
|
||||||
|
-o /sbin/tini
|
||||||
|
chmod a+x /sbin/tini
|
||||||
|
|
Loading…
Reference in New Issue