84 lines
1.9 KiB
YAML
84 lines
1.9 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
lb:
|
|
image: haproxy:latest
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- "./data/certificates:/certificates"
|
|
- "./lb:/usr/local/etc/haproxy"
|
|
depends_on:
|
|
- "certbot"
|
|
- "flask"
|
|
- "osmtile"
|
|
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;'"
|
|
db:
|
|
image: postgres:13-alpine
|
|
volumes:
|
|
- "./data/db/pgdata:/var/lib/postgresql/data/"
|
|
env_file:
|
|
- ./.env.prod
|
|
restart: always
|
|
networks:
|
|
- internal
|
|
pgadmin:
|
|
image: dpage/pgadmin4
|
|
#volumes:
|
|
# - "./data/dbadmin:/var/lib/pgadmin"
|
|
env_file:
|
|
- ./.env.prod
|
|
restart: always
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- db
|
|
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
|
|
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: {}
|