diff --git a/pica-etherpad/Dockerfile b/pica-etherpad/Dockerfile index 63a4d299ab7a7fea77582614eea92595532828e0..4f358c95193ded29f3fd3866d3da57f25099069b 100644 --- a/pica-etherpad/Dockerfile +++ b/pica-etherpad/Dockerfile @@ -6,12 +6,12 @@ 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=\ +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 + ep_subscript_and_superscript ep_tables2 ep_user_font_size" ENV NODE_ENV=${NODE_ENV_BUILD} @@ -50,7 +50,9 @@ RUN for PLUGIN_NAME in ${ETHERPAD_PLUGINS}; do npm install "${PLUGIN_NAME}"; don # construction de l'image finale FROM base +ARG UID=5004 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 && \ @@ -59,10 +61,13 @@ RUN apt-get update && \ usermod -d /opt/etherpad-lite node && \ rm -rf /var/lib/apt/lists/* +RUN useradd --uid ${UID} --create-home etherpad + # import des fichiers téléchargés dans l'image downloader -COPY --from=downloader --chown=node /opt/etherpad-lite /opt/etherpad-lite/ +COPY --from=downloader --chown=etherpad /opt/etherpad-lite /opt/etherpad-lite/ -USER node +WORKDIR /opt/etherpad-lite/ +USER etherpad EXPOSE 8080 ENTRYPOINT ["/opt/etherpad-lite/entrypoint.sh"] CMD ["node", "/opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js"] diff --git a/pica-etherpad/README.md b/pica-etherpad/README.md index a0a3ea6e4f713aa03c6b165430837cd4ca565393..72dd53343d1da518eb3217e645219f02c7ca0346 100644 --- a/pica-etherpad/README.md +++ b/pica-etherpad/README.md @@ -4,17 +4,16 @@ Ce dossier contient une image d'Etherpad Lite maintenue par l'association. Tous les fichiers présents ici suffisent à lancer correctement les deux conteneurs (application et base de données), si un Traefik tourne sur la machine cible. -<!-- MarkdownTOC autolink="true" --> +<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 --> -- [Environnement](#environnement) - [Configuration](#configuration) - - [Ajouter ou modifier un paramètre](#ajouter-ou-modifier-un-param%C3%A8tre) -- [Mise à jour de l'image](#mise-%C3%A0-jour-de-limage) +- [Ajouter ou modifier un paramètre](#ajouter-ou-modifier-un-paramtre) +- [Mise à jour de l'image](#mise-jour-de-limage) - [Ajout d'un plugin](#ajout-dun-plugin) -<!-- /MarkdownTOC --> +<!-- /TOC --> -## Environnement +## Configuration Etherpad se configure au lancement du conteneur avec des variables d'environnement. Elles sont présentes à trois endroits : @@ -31,9 +30,7 @@ Pour information, les variables que l'on peut affecter directement dans le `dock * `ETHERPAD_TITLE` : titre de l'instance * `ETHERPAD_LOGLEVEL` : `INFO`, `DEBUG`, `WARN` ou `ERROR` -## Configuration - -### Ajouter ou modifier un paramètre +## Ajouter ou modifier un paramètre Pour un paramètre fixé, on modifiera directement `settings.json`. Pour un paramètre sujet aux changements, on utilisera une variable d'environnement que l'on documentera ci-dessus et que l'on affectera dans `settings.json` avec la syntaxe `"${NOUVELLE_VARIABLE:Valeur par défaut}"`. Voir le fichier pour des examples. @@ -42,6 +39,8 @@ Pour un paramètre sujet aux changements, on utilisera une variable d'environnem Pour mettre à jour la version d'Etherpad, il faut simplement modifir la variable `ETHERPAD_VERSION_BUILD` du Dockerfile et le nom dans l'image dans Docker Compose. +N'oubliez pas le paramètre `UID`, qui idéalement correspond au compte LDAP d'Etherpad. + L'image est construite automatiquement grâce à la CI. ## Ajout d'un plugin