-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docker: move the docker image creation inside the main repository
This is a super simple start. At minimum, configuration via environment variables (see #3543) needs to be integrated in Etherpad to make this user-friendly. Resolves #3524.
- Loading branch information
Showing
4 changed files
with
125 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# Etherpad Lite Dockerfile | ||
# | ||
# https://github.com/ether/etherpad-docker | ||
# | ||
# Author: muxator | ||
# | ||
# Version 0.1 | ||
|
||
FROM node:latest | ||
LABEL maintainer="Etherpad team, https://github.com/ether/etherpad-lite" | ||
|
||
# install supervisor | ||
RUN apt-get update && apt-get install -y \ | ||
supervisor \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# install supervisor.conf in a low layer of the container | ||
ADD supervisor.conf /etc/supervisor/supervisor.conf | ||
|
||
# git hash of the version to be built. | ||
# If not given, build the latest development version. | ||
ARG ETHERPAD_VERSION=develop | ||
|
||
# grab the ETHERPAD_VERSION tarball from github (no need to clone the whole | ||
# repository) | ||
RUN echo "Getting version: ${ETHERPAD_VERSION}" && \ | ||
curl \ | ||
--location \ | ||
--fail \ | ||
--silent \ | ||
--show-error \ | ||
--output /opt/etherpad-lite.tar.gz \ | ||
https://github.com/ether/etherpad-lite/archive/"${ETHERPAD_VERSION}".tar.gz && \ | ||
mkdir /opt/etherpad-lite && \ | ||
tar xf /opt/etherpad-lite.tar.gz \ | ||
--directory /opt/etherpad-lite \ | ||
--strip-components=1 && \ | ||
rm /opt/etherpad-lite.tar.gz | ||
|
||
# install node dependencies for Etherpad | ||
RUN /opt/etherpad-lite/bin/installDeps.sh | ||
|
||
# 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). | ||
# | ||
# For the conditional COPY trick, see: | ||
# https://stackoverflow.com/questions/31528384/conditional-copy-add-in-dockerfile#46801962 | ||
COPY nop setting[s].json /opt/etherpad-lite/ | ||
|
||
EXPOSE 9001 | ||
CMD ["supervisord", "-c", "/etc/supervisor/supervisor.conf", "-n"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Docker image | ||
|
||
This directory contains the files that are used to build the official Docker image on https://hub.docker.com/r/etherpad/etherpad. | ||
|
||
# Rebuilding with custom settings | ||
In order to use a personalized settings file, **you will have to rebuild your image**. | ||
|
||
All of these instructions are as a member of the `docker` group. | ||
|
||
Prepare your custom `settings.json` file: | ||
```bash | ||
cd <BASEDIR>/docker | ||
cp ../settings.json.template settings.json | ||
[ further edit your settings.json as needed] | ||
``` | ||
|
||
Build the version you prefer: | ||
```bash | ||
# builds latest development version | ||
docker build --tag <YOUR_USERNAME>/etherpad . | ||
|
||
# builds latest stable version | ||
docker build --build-arg ETHERPAD_VERSION=master --tag <YOUR_USERNAME>/etherpad . | ||
|
||
# builds a specific version | ||
docker build --build-arg ETHERPAD_VERSION=1.7.5 --tag <YOUR_USERNAME>/etherpad . | ||
|
||
# builds a specific git hash | ||
docker build --build-arg ETHERPAD_VERSION=4c45ac3cb1ae --tag <YOUR_USERNAME>/etherpad . | ||
``` | ||
|
||
# Downloading from Docker Hub | ||
If you are ok downloading a [prebuilt image from Docker Hub](https://hub.docker.com/r/etherpad/etherpad), these are the commands: | ||
```bash | ||
# gets the latest published version | ||
docker pull etherpad/etherpad | ||
|
||
# gets a specific version | ||
docker pull etherpad/etherpad:1.7.5 | ||
``` | ||
|
||
# Running your instance: | ||
|
||
To run your instance: | ||
```bash | ||
docker run --detach --publish <DESIDERED_PORT>:9001 <YOUR_USERNAME>/etherpad | ||
``` | ||
|
||
And point your browser to `http://<YOUR_IP>:<DESIDERED_PORT>` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
THIS IS A DUMMY FILE | ||
|
||
It is used to trick Docker in doing a conditional COPY | ||
see: https://stackoverflow.com/questions/31528384/conditional-copy-add-in-dockerfile#46801962 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
[supervisord] | ||
nodaemon=true | ||
|
||
[unix_http_server] | ||
file=/var/run//supervisor.sock | ||
chmod=0700 | ||
|
||
[rpcinterface:supervisor] | ||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface | ||
|
||
[supervisorctl] | ||
serverurl=unix:///var/run//supervisor.sock | ||
|
||
[program:etherpad] | ||
directory=/opt/etherpad-lite | ||
command=node node_modules/ep_etherpad-lite/node/server.js | ||
user=root | ||
autostart=true | ||
autorestart=true | ||
|