3 changed files with 66 additions and 38 deletions
Split View
Diff Options
@ -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 |
|||
# You want USE_SSL=true if not putting cryptpad behind a proxy |
|||
ENV USE_SSL=false |
|||
ENV STORAGE=\'./storage/file\' |
|||
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 |
|||
|
|||
ENV USE_SSL=false |
|||
ENV STORAGE=\'./storage/file\' |
|||
ENV LOG_TO_STDOUT=true |
|||
# 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"] |
|||
|
|||
@ -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 |
|||
|
|||
Write
Preview
Loading…
Cancel
Save