From 81c801300b2912dc19a24314629ee550b1899d34 Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Wed, 27 Jun 2018 01:20:22 +0200 Subject: [PATCH] Provide a Docker Compose example Closes https://github.com/shaarli/Shaarli/issues/1010 See: - https://hub.docker.com/_/traefik/ - https://docs.traefik.io/configuration/backends/docker/ - https://docs.traefik.io/user-guide/docker-and-lets-encrypt/ - https://github.com/containous/traefik/pull/2798 - https://github.com/containous/traefik/issues/3298 Signed-off-by: VirtualTam --- .dockerignore | 3 +++ .gitattributes | 1 + docker-compose.yml | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore index a0d28dc6..96fd31c5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,6 +4,9 @@ .github tests +# Docker Compose resources +docker-compose.yml + # Shaarli runtime resources cache/* data/* diff --git a/.gitattributes b/.gitattributes index 9d22f11b..9a92bc37 100644 --- a/.gitattributes +++ b/.gitattributes @@ -35,6 +35,7 @@ doc/**/*.json export-ignore doc/**/*.md export-ignore .docker/ export-ignore .dockerignore export-ignore +docker-compose.* export-ignore Dockerfile* export-ignore Doxyfile export-ignore Makefile export-ignore diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..fc68bf30 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,56 @@ +--- +# Shaarli - Docker Compose script +# +# See: +# - https://shaarli.readthedocs.io/en/master/docker/shaarli-images/ +version: '3' + +networks: + http-proxy: + +volumes: + traefik-acme: + shaarli-cache: + shaarli-data: + +services: + shaarli: + image: shaarli/shaarli:master + build: ./ + networks: + - http-proxy + volumes: + - shaarli-cache:/var/www/shaarli/cache + - shaarli-data:/var/www/shaarli/data + labels: + traefik.domain: "${SHAARLI_VIRTUAL_HOST}" + traefik.backend: shaarli + traefik.frontend.rule: "Host:${SHAARLI_VIRTUAL_HOST}" + + traefik: + image: traefik + command: + - "--defaultentrypoints=http,https" + - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https" + - "--entrypoints=Name:https Address::443 TLS" + - "--retry" + - "--docker" + - "--docker.domain=docker.localhost" + - "--docker.exposedbydefault=true" + - "--docker.watch=true" + - "--acme" + - "--acme.domains=${SHAARLI_VIRTUAL_HOST}" + - "--acme.email=${SHAARLI_LETSENCRYPT_EMAIL}" + - "--acme.entrypoint=https" + - "--acme.onhostrule=true" + - "--acme.storage=/acme/acme.json" + - "--acme.httpchallenge" + - "--acme.httpchallenge.entrypoint=http" + networks: + - http-proxy + ports: + - 80:80 + - 443:443 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - traefik-acme:/acme