diff --git a/docker/Dockerfile b/docker/Dockerfile index 7e3da1e7..b2266b4c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -13,6 +13,14 @@ LABEL maintainer="Etherpad team, https://github.com/ether/etherpad-lite" # If not given, build the latest development version. ARG ETHERPAD_VERSION=develop +# plugins to install while building the container. By default no plugins are +# installed. +# If given a value, it has to be a space-separated, quoted list of plugin names. +# +# EXAMPLE: +# ETHERPAD_PLUGINS="ep_codepad ep_author_neat" +ARG ETHERPAD_PLUGINS= + # Set the following to production to avoid installing devDeps # this can be done with build args (and is mandatory to build ARM version) ARG NODE_ENV=development @@ -38,6 +46,12 @@ WORKDIR /opt/etherpad-lite # install node dependencies for Etherpad RUN bin/installDeps.sh +# Install the plugins, if ETHERPAD_PLUGINS is not empty. +# +# Bash trick: in the for loop ${ETHERPAD_PLUGINS} is NOT quoted, in order to be +# able to split at spaces. +RUN for PLUGIN_NAME in ${ETHERPAD_PLUGINS}; do npm install "${PLUGIN_NAME}"; done + # Copy the custom configuration file, if present. The configuration file has to # be manually put inside the same directory containing the Dockerfile (we cannot # directly point to "../settings.json" for Docker's security restrictions). diff --git a/docker/README.md b/docker/README.md index 1d167580..3501a620 100644 --- a/docker/README.md +++ b/docker/README.md @@ -27,6 +27,12 @@ cp ../settings.json.template settings.json **Each configuration parameter can also be set via an environment variable**, using the syntax `"${ENV_VAR}"` or `"${ENV_VAR:default_value}"`. For details, refer to `settings.json.template`. +## Rebuilding including some plugins +If you want to install some plugins in your container, it is sufficient to list them in the ETHERPAD_PLUGINS build variable. +The variable value has to be a space separated, double quoted list of plugin names (see examples). + +Some plugins will need personalized settings in the `settings.json` file. Just refer to the previous section, and include them in your custom `settings.json`. + ## Examples Build the latest development version: @@ -49,6 +55,11 @@ Build a specific git hash: docker build --build-arg ETHERPAD_VERSION=4c45ac3cb1ae --tag /etherpad . ``` +Include two plugins in the container: +```bash +docker build --build-arg ETHERPAD_PLUGINS="ep_codepad ep_author_neat" --tag /etherpad . +``` + # Running your instance: To run your instance: