ARG REPO_LOCATION # ARG BASE_VERSION FROM ${REPO_LOCATION}minideb AS builder # This is release 1.8.12 # It's important we checkout a specific commit, otherwise etherpad checks out the latest from develop O.o ARG COMMIT=b99c2cae22f35a0c0831e2fef0719f115b486bd9 RUN install_packages git ca-certificates curl RUN mkdir -p /srv \ && git clone --branch master https://github.com/ether/etherpad-lite.git /srv/etherpad \ && cd /srv/etherpad && git checkout "${COMMIT}" \ && git status ############################################################################### FROM ${REPO_LOCATION}minideb COPY --from=builder /srv/etherpad /srv/etherpad COPY settings.json /srv/etherpad/ ENV PYTHON /usr/bin/python3 ENV NVM_DIR /root/.nvm ENV NODE_VERSION lts/erbium # lts-erbium = Node.js 12.x # We speculate that our problems with Etherpad are because we're using a newer version of Node.js..... :-/ # nvm needs curl to download versions of Node.js # Ref https://stackoverflow.com/a/66521281/1460422 RUN install_packages ca-certificates curl RUN curl -sSL -o - https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash || true RUN mkdir -p /.npm \ && chmod +x $HOME/.nvm/nvm.sh \ && . $HOME/.nvm/nvm.sh \ && nvm install $NODE_VERSION \ && nvm alias default $NODE_VERSION \ && nvm use default \ && cd /srv/etherpad \ && install_packages python3 make gcc g++ libc-dev libc++-dev \ && ln -s /usr/bin/python3 /usr/bin/python \ && src/bin/installDeps.sh \ && npm install sqlite3 \ && rm -rf /srv/etherpad/.git /.npm/_cacache \ && chown -R 70:70 /.npm /srv/etherpad # The rm -rf there is to save some space in the resulting container USER 70:70 ENV NODE_ENV production WORKDIR /srv/etherpad ENTRYPOINT [ "/srv/etherpad/bin/run.sh" ]