47 lines
1.5 KiB
YAML
47 lines
1.5 KiB
YAML
version: '3.9'
|
|
|
|
services:
|
|
|
|
traefik:
|
|
image: traefik:v2.11.3
|
|
command:
|
|
- --log.level=INFO
|
|
- --entrypoints.web.address=:80
|
|
- --entrypoints.web.http.redirections.entrypoint.to=websecure
|
|
- --entrypoints.web.http.redirections.entrypoint.scheme=https
|
|
- --entrypoints.websecure.address=:443
|
|
- --entrypoints.websecure.http.tls=true
|
|
- --entrypoints.websecure.http.tls.certResolver=le
|
|
- --providers.docker.exposedbydefault=false
|
|
- --certificatesresolvers.le.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
|
|
- --certificatesresolvers.le.acme.email=email@example.com
|
|
- --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
|
|
- --certificatesresolvers.le.acme.tlsChallenge=true
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- ./letsencrypt/:/letsencrypt
|
|
|
|
traefik-certs-dumper:
|
|
image: ldez/traefik-certs-dumper:v2.8.3
|
|
entrypoint: sh -c '
|
|
apk add jq
|
|
; while ! [ -e /data/acme.json ]
|
|
|| ! [ `jq ".[] | .Certificates | length" /data/acme.json` != 0 ]; do
|
|
sleep 1
|
|
; done
|
|
&& traefik-certs-dumper file --version v2 --watch
|
|
--source /data/acme.json --dest /data/certs'
|
|
volumes:
|
|
- ./letsencrypt:/data
|
|
|
|
whoami:
|
|
image: traefik/whoami:v1.8.1
|
|
labels:
|
|
traefik.enable: 'true'
|
|
|
|
traefik.http.routers.app.rule: Host(`example.com`)
|
|
traefik.http.routers.app.entrypoints: websecure
|