2019-05-08 12:04:15 +00:00
|
|
|
version: '3.5'
|
2018-06-10 14:13:09 +00:00
|
|
|
services:
|
|
|
|
|
db:
|
2019-09-07 17:46:45 +00:00
|
|
|
image: mariadb:10.4
|
2018-06-10 14:13:09 +00:00
|
|
|
restart: unless-stopped
|
|
|
|
|
environment:
|
|
|
|
|
- TZ=${TZ}
|
|
|
|
|
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASS}
|
|
|
|
|
- MYSQL_DATABASE=${DB_DATABASE}
|
|
|
|
|
- MYSQL_USER=${DB_USERNAME}
|
|
|
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
|
|
|
volumes:
|
|
|
|
|
- db-data:/var/lib/mysql
|
|
|
|
|
networks:
|
|
|
|
|
- backend
|
|
|
|
|
|
|
|
|
|
cache:
|
2019-05-08 12:04:15 +00:00
|
|
|
image: redis:5-alpine
|
2018-06-10 14:13:09 +00:00
|
|
|
restart: unless-stopped
|
|
|
|
|
environment:
|
|
|
|
|
- TZ=${TZ}
|
|
|
|
|
volumes:
|
|
|
|
|
- cache:/data/
|
|
|
|
|
networks:
|
|
|
|
|
- backend
|
|
|
|
|
|
|
|
|
|
app:
|
2019-09-07 17:46:45 +00:00
|
|
|
image: jjtc/bookstack-ppm:0.27.4-r0
|
2018-06-10 14:13:09 +00:00
|
|
|
build: ./app/
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
- cache
|
|
|
|
|
volumes:
|
|
|
|
|
- .env:/app/.env:rw
|
2019-07-31 12:49:05 +00:00
|
|
|
- ./app/ppm.json:/app/ppm.json:ro
|
|
|
|
|
- ./app/php.ini:/etc/php7/php.ini:ro
|
2018-06-10 14:13:09 +00:00
|
|
|
- ./app/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
|
|
|
- ./app/default.conf:/etc/nginx/sites-enabled/default:ro
|
2019-05-08 12:04:15 +00:00
|
|
|
- uploads:/app/public/uploads:rw
|
|
|
|
|
- storage:/app/public/storage:rw
|
2018-06-10 14:13:09 +00:00
|
|
|
expose:
|
2019-08-01 13:43:47 +00:00
|
|
|
- "8888/tcp"
|
2018-06-10 14:13:09 +00:00
|
|
|
networks:
|
|
|
|
|
- web
|
|
|
|
|
- backend
|
|
|
|
|
labels:
|
|
|
|
|
- "traefik.frontend.headers.STSPreload=true"
|
|
|
|
|
- "traefik.frontend.headers.STSSeconds=31536000"
|
|
|
|
|
- "traefik.backend=bookstack"
|
|
|
|
|
- "traefik.docker.network=web"
|
|
|
|
|
- "traefik.frontend.rule=Host:${APP_URL_BASE}"
|
|
|
|
|
- "traefik.enable=true"
|
2019-08-01 13:43:47 +00:00
|
|
|
- "traefik.port=8888"
|
2018-06-10 14:13:09 +00:00
|
|
|
- "traefik.default.protocol=http"
|
|
|
|
|
|
|
|
|
|
# av:
|
|
|
|
|
# image: jjtc/av:0.100.0-r0
|
|
|
|
|
# build: ./av/
|
|
|
|
|
# restart: unless-stopped
|
|
|
|
|
# tty: true
|
|
|
|
|
# environment:
|
|
|
|
|
# - TZ=${TZ}
|
|
|
|
|
# volumes:
|
|
|
|
|
# - ./av/conf/:/etc/clamav/
|
|
|
|
|
# networks:
|
|
|
|
|
# - backend
|
|
|
|
|
# labels:
|
|
|
|
|
# - "traefik.enable=false"
|
|
|
|
|
|
|
|
|
|
#traefik:
|
|
|
|
|
# image: traefik:latest
|
|
|
|
|
# restart: unless-stopped
|
|
|
|
|
# command: traefik --docker --acme=true --acme.domains='your.domain.tld' --acme.email='your@email.tld' --acme.entrypoint=https --acme.storagefile=acme.json --defaultentrypoints=http --defaultentrypoints=https --entryPoints='Name$
|
|
|
|
|
# ports:
|
|
|
|
|
# - 80:80
|
|
|
|
|
# - 443:443
|
|
|
|
|
# volumes:
|
|
|
|
|
# - /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
backend:
|
|
|
|
|
web:
|
|
|
|
|
external: true
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
db-data:
|
|
|
|
|
cache:
|
|
|
|
|
uploads:
|
|
|
|
|
storage:
|