# déclaration unique des variables d'environnement #bump for deply FROM node:10-buster-slim as base LABEL maintainer="quentinduchemin@tuta.io" ARG ETHERPAD_VERSION_BUILD=1.8.0 ARG ETHERPAD_LANDING_PAGE_VERSION_BUILD=v0.1 ARG NODE_ENV_BUILD=production ARG ETHERPAD_PLUGINS=\ ep_align ep_author_hover ep_chatdate ep_colibris_full_width \ ep_comments_page ep_countable ep_delete_empty_pads ep_font_color \ ep_font_family ep_headings2 ep_markdown ep_pad_activity_nofication_in_title \ ep_pads_stats ep_page_view ep_prompt_for_name ep_set_title_on_pad \ ep_subscript_and_superscript ep_tables2 ep_user_font_size ENV NODE_ENV=${NODE_ENV_BUILD} FROM base as downloader RUN apt-get update && \ apt-get install -y \ git \ curl \ gzip \ libssl-dev \ pkg-config \ python \ unzip && \ mkdir -p /opt/etherpad-lite && \ chown -R node /opt/etherpad-lite USER node WORKDIR /opt/etherpad-lite RUN curl -SL https://github.com/ether/etherpad-lite/archive/${ETHERPAD_VERSION}.zip > etherpad.zip && \ unzip etherpad && \ rm -Rf etherpad.zip etherpad-lite-${ETHERPAD_VERSION}/.git && \ mv etherpad-lite-${ETHERPAD_VERSION}/* . && \ mkdir -p src/templates && \ bin/installDeps.sh && \ git clone https://framagit.org/DeBugs/picasoft-etherpad-landing-page.git src/templates/picasoft-etherpad-landing-page && \ rm package-lock.json && \ git --git-dir=src/templates/picasoft-etherpad-landing-page/.git checkout ${ETHERPAD_LANDING_PAGE_VERSION} && \ cp src/templates/picasoft-etherpad-landing-page/index.html src/templates/index.html && \ cp src/templates/picasoft-etherpad-landing-page/static/* src/static/ -r && \ # Change default hard-coded pad title sed -i 's|Untitled Pad|Nouveau pad|g' node_modules/ep_set_title_on_pad/templates/title.ejs && \ sed -i 's|Untitled Pad|Nouveau pad|g' node_modules/ep_set_title_on_pad/static/tests/frontend/specs/atest.js RUN for PLUGIN_NAME in ${ETHERPAD_PLUGINS}; do npm install "${PLUGIN_NAME}"; done # construction de l'image finale FROM base COPY entrypoint.sh /opt/etherpad-lite/entrypoint.sh RUN apt-get update && \ apt-get install -y default-mysql-client && \ chmod +x /opt/etherpad-lite/entrypoint.sh && \ mkdir -p /opt/etherpad-lite && \ chown -R node /opt/etherpad-lite && \ usermod -d /opt/etherpad-lite node && \ rm -rf /var/lib/apt/lists/* # import des fichiers téléchargés dans l'image downloader COPY --from=downloader --chown=node /opt/etherpad-lite /opt/etherpad-lite/ USER node EXPOSE 8080 ENTRYPOINT ["/opt/etherpad-lite/entrypoint.sh"] CMD ["node", "/opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js"]