layerindex-web/docker-compose.yml
Paul Eggleton efe74a451f dockersetup: add letsencrypt support
The application is most likely to be used in an internal setting,
however should someone want to make it accessible externally, add
support for Let's Encrypt certificates for serving via HTTPS.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2019-07-17 11:30:56 +12:00

75 lines
2.0 KiB
YAML

version: '3'
services:
layersdb:
image: mariadb:10.2
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
- "MYSQL_DATABASE=layersdb"
- "MYSQL_ROOT_PASSWORD=testingpw"
container_name: layersdb
layersapp:
depends_on:
- layersdb
build: .
image: halstead/layerindex-app
hostname: localhost
volumes:
- layersmeta:/opt/workdir
environment:
#- "SECRET_KEY=<set this here>"
- "DATABASE_PASSWORD=testingpw"
- "DATABASE_HOST=layersdb"
#- "EMAIL_HOST=<set this here>"
#- "DEBUG=1"
container_name: layersapp
layersweb:
depends_on:
- layersapp
build:
context: .
dockerfile: Dockerfile.web
image: halstead/layerindex-web
hostname: localhost
ports:
- "8080:80"
## For production you want these instead
# - "80:80"
# - "443:443"
volumes:
- layersstatic:/usr/share/nginx/html
- ./docker/certs:/opt/cert
- certbotwww:/var/www/certbot:z
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
container_name: layersweb
layersrabbit:
image: rabbitmq:alpine
container_name: layersrabbit
layerscelery:
depends_on:
- layersdb
- layersapp
- layersrabbit
image: halstead/layerindex-app
volumes:
- layersmeta:/opt/workdir
environment:
#- "SECRET_KEY=<set this here>"
- "DATABASE_PASSWORD=testingpw"
- "DATABASE_HOST=layersdb"
#- "EMAIL_HOST=<set this here>"
#- "DEBUG=1"
container_name: layerscelery
command: /usr/local/bin/celery -A layerindex.tasks worker --loglevel=info --workdir=/opt/layerindex
#layerscertbot:
# image: certbot/certbot
# volumes:
# - ./docker/certs:/opt/cert
# - certbotwww:/var/www/certbot:z
# container_name: layerscertbot
# entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
volumes:
layersmeta:
layersstatic:
certbotwww: