diff --git a/Dockerfile b/Dockerfile index 5b22f39bf..182eece52 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,49 @@ -FROM node:6-alpine +# 6-stretch is the ONLY node 6 release supported by arm32v7, arm64v8 and x86-64 docker hub labels +FROM node:6-stretch -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"] + diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 deleted file mode 100644 index ec11ddc55..000000000 --- a/Dockerfile.arm64 +++ /dev/null @@ -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"] diff --git a/docker-install-tini.sh b/docker-install-tini.sh new file mode 100755 index 000000000..a9a92e871 --- /dev/null +++ b/docker-install-tini.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 <Die Dateieendung ({1}) wird automatisch hinzugefügt. "+ - "Dieser Name bleibt für immer und wird für die andere Benutzer sichtbar."; out.upload_serverError = "Serverfehler: Die Datei kann aktuell nicht hochgeladen werden. "; out.upload_uploadPending = "Ein anderes Hochlade-Vorgang läuft gerade. Willst du den abbrechen und deine neue Datei hochladen?"; out.upload_success = "Deine Datei ({0}) wurde erfolgreich hochgeladen und in deinem CryptDrive hinzugefügt."; @@ -911,6 +918,10 @@ define(function () { " Jedes existes existierende Dokument kann eine Vorlage werden, indem es in den Vorlagen Abschnitt des CryptDrives geschoben wird." + " Du kannst auch eine Kopie eines Dokuments erstellen, die zur Vorlage wird, indem du auf der Vorlagen-Knopf () der Werkzeugleiste des Editors drückst." }, + abandoned: { + q: "Was ist ein verlassene Dokument?", + a: "Ein verlassene Dokument ist ein Dokument, das in dem Drive von keinem registrierten Benutzer ist und nicht sein sechs Monaten bearbeitet wurde. Verlassene Dokumente werden automatisch aus demm Server gelöscht." + }, }; out.faq.privacy = { title: 'Privacy',