From e8395f027b6c3e3f757c740e35b20e76c51b03bd Mon Sep 17 00:00:00 2001 From: kaiyou Date: Mon, 29 Jan 2018 08:52:20 +0100 Subject: Add production Alpine and Debian Stretch Docker images (#225) * First pass at a (swarm-compatible) docker image Uses an existing traefik server as a https reverse proxy. * Add example config for a Docker swarm deployment * Point to traefik config for docker compose setup * Clarify that traefik is needed for the example config * Use node:8-stretch base image and don't install yarn (The base image already contains yarn.) * Initial commit for an Alpine Docker image * Fix docker volume path * Merge #213 and #225 and move files around * Remove unnecessary dependencies from the alpine build * Update Dockerfiles to match install path, config path, etc. * Update the configuration in the example compose file * Update the configuration in the example swarm file * Remove the declared networks and volumes from the compose example, which are not strictly required * Update attachment path in the documentation * Display traefik as a suggestion and not a required dependency * Update the Docker ignored files * Fix typos reported in #225 * Move production Dockerfiles to a production directory * Add the redis configuration settings * Add Docker files to the dockerignore * Make the signup limit configurable --- support/docker/production/swarm-stack.sample.yml | 52 ++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 support/docker/production/swarm-stack.sample.yml (limited to 'support/docker/production/swarm-stack.sample.yml') diff --git a/support/docker/production/swarm-stack.sample.yml b/support/docker/production/swarm-stack.sample.yml new file mode 100644 index 000000000..794f44753 --- /dev/null +++ b/support/docker/production/swarm-stack.sample.yml @@ -0,0 +1,52 @@ +version: "3.3" + +services: + app: + image: peertube:stretch + environment: + PEERTUBE_HOSTNAME: my.domain.tld + PEERTUBE_PORT: 443 + PEERTUBE_HTTPS: true + PEERTUBE_ADMIN_EMAIL: admin@domain.tld + PEERTUBE_DB_USERNAME: user + PEERTUBE_DB_PASSWORD: password + PEERTUBE_SIGNUP_ENABLED: true + PEERTUBE_TRANSCODING_ENABLED: true + labels: &labels + traefik.frontend.rule: "Host:my.domain.tld" + traefik.docker.network: traefik + traefik.port: "9000" + volumes: + - app_data:/usr/src/app/data + networks: + - traefik + - backend + depends_on: + - db + deploy: + labels: *labels + placement: + constraints: + - node.labels.peertube == 1 + + db: + image: postgres:10 + environment: + POSTGRES_DB: peertube_prod + volumes: + - db_data:/var/lib/postgresql/data + networks: + - backend + deploy: + placement: + constraints: + - node.labels.peertube == 1 + +volumes: + app_data: + db_data: + +networks: + backend: + traefik: + external: true -- cgit v1.2.3