docker: support including plugins in custom builds.
This commit introduces the support for the ETHERPAD_PLUGINS build parameter, which contains a list of plugins to be installed while building the container. EXAMPLE: docker build --build-arg ETHERPAD_PLUGINS="ep_codepad ep_author_neat" --tag <YOUR_USERNAME>/etherpad . Resolves #3618.pull/3628/head
parent
b5ac653cbc
commit
4582f9daeb
|
@ -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).
|
||||
|
|
|
@ -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 <YOUR_USERNAME>/etherpad .
|
||||
```
|
||||
|
||||
Include two plugins in the container:
|
||||
```bash
|
||||
docker build --build-arg ETHERPAD_PLUGINS="ep_codepad ep_author_neat" --tag <YOUR_USERNAME>/etherpad .
|
||||
```
|
||||
|
||||
# Running your instance:
|
||||
|
||||
To run your instance:
|
||||
|
|
Loading…
Reference in New Issue