net/docker-compose.prod.yml

70 lines
1.7 KiB
YAML

version: '3.8'
services:
lb:
image: haproxy:latest
ports:
- "80:80"
- "443:443"
volumes:
- "./data/certificates:/certificates"
- "./config/lb:/usr/local/etc/haproxy"
depends_on:
- "certbot"
restart: always
networks:
- internal
labels:
- meta.role=lb
certbot:
image: "certbot/certbot"
hostname: certbot
volumes:
- "./data/certificates:/certificates"
- "./data/certbot/etc:/etc/letsencrypt"
- "./data/certbot/var:/var/lib/letsencrypt"
- "./logs/certbot:/var/log/letsencrypt"
restart: on-failure
networks:
- internal
labels:
- meta.role=certbot
#entrypoint: sh -c 'while true; do sleep 1; done'
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 15d & wait $${!}; done;'"
flask:
build:
context: ./flask
dockerfile: Dockerfile.prod
command: gunicorn --bind 0.0.0.0:5000 manage:app
expose:
- 5000
env_file:
- ./.env.prod
networks:
- internal
depends_on:
- db
db:
image: postgres:13-alpine
volumes:
- "./data/db/pgdata:/var/lib/postgresql/data/"
env_file:
- ./.env.prod
networks:
- internal
osmtile:
image: "overv/openstreetmap-tile-server:latest"
hostname: osmtile
environment:
- "DOWNLOAD_PBF=https://download.geofabrik.de/europe/bulgaria-latest.osm.pbf"
- "DOWNLOAD_POLY=https://download.geofabrik.de/europe/bulgaria.poly"
volumes:
- "./data/osmtile/pgdata:/var/lib/postgresql/12/main"
networks:
- internal
#entrypoint: "/run.sh import"
entrypoint: "/run.sh run"
restart: always
networks:
internal: {}