felicity-lims/docker-compose.prod.yml
2024-01-28 15:17:16 +02:00

176 lines
3.8 KiB
YAML

version: '3.8'
volumes:
db-data:
pgadmin:
caddy_data:
caddy_config:
networks:
felicitynet:
driver: bridge
services:
felicity_aio_caddy:
container_name: felicity_aio_caddy
restart: unless-stopped
image: caddy:2-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./services/caddy/proxy/Caddyfile:/etc/caddy/Caddyfile
- ./caddy.data:/data
- ./caddy.config:/config
environment:
PROXY_BACKEND: felicity_aio
PROXY_PORT: 8000
SERVER_HOST: ${SERVER_HOST}
depends_on:
- felicity_aio
networks:
- felicitynet
felicity_aio_nginx:
container_name: felicity_aio_nginx
image: nginx:latest
ports:
- "80:80"
environment:
PROXY_BACKEND: felicity_aio
PROXY_PORT: 8000
SERVER_HOST: ${SERVER_HOST}
volumes:
- ./services/nginx/proxy/:/etc/nginx/templates/
depends_on:
- felicity_aio
networks:
- felicitynet
felicity_aio:
container_name: felicity_aio
image: felicity_aio:1.0.0
restart: unless-stopped
env_file:
- .env
environment:
- POSTGRES_SERVER=felicity_db
- SERVE_WEBAPP=True
volumes:
- ./felicity:/app/felicity
build:
context: ./
target: server-aio
dockerfile: Dockerfile.prod
ports:
- 8000:8000
networks:
- felicitynet
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- felicity_db
felicity_static_caddy:
container_name: felicity_static_caddy
restart: unless-stopped
build:
context: ./
target: caddy-static
dockerfile: Dockerfile.prod
ports:
- "80:80"
- "443:443"
volumes:
- ./services/caddy/static/Caddyfile:/etc/caddy/Caddyfile
- ./caddy.data:/data
- ./caddy.config:/config
environment:
PROXY_BACKEND: felicity_api
PROXY_PORT: 8000
SERVER_HOST: ${SERVER_HOST}
depends_on:
- felicity_api
networks:
- felicitynet
felicity_static_nginx:
container_name: felicity_static_nginx
restart: unless-stopped
build:
context: ./
target: nginx-static
dockerfile: Dockerfile.prod
ports:
- "80:80"
environment:
PROXY_BACKEND: felicity_api
PROXY_PORT: 8000
SERVER_HOST: ${SERVER_HOST}
volumes:
- ./services/nginx/static/:/etc/nginx/templates/
depends_on:
- felicity_api
networks:
- felicitynet
felicity_api:
container_name: felicity_api
image: felicity_api:1.0.0
restart: unless-stopped
env_file:
- .env
environment:
- POSTGRES_SERVER=felicity_db
- SERVE_WEBAPP=False
volumes:
- ./felicity:/app/felicity
build:
context: ./
target: server-api
dockerfile: Dockerfile.prod
ports:
- 8000:8000
networks:
- felicitynet
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- felicity_db
felicity_db:
container_name: felicity_db
image: postgres:12
restart: unless-stopped
env_file:
- .env
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_HOST_AUTH_METHOD=trust
volumes:
- ./postgres/init/:/docker-entrypoint-initdb.d/
- db-data:/var/lib/postgresql/data
ports:
- 5434:5432
networks:
- felicitynet
pgadmin:
container_name: felicity.pgadmin
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-admin@pgadmin.org}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
volumes:
- pgadmin:/root/.pgadmin
ports:
- "${PGADMIN_PORT:-5050}:80"
networks:
- felicitynet
restart: unless-stopped
depends_on:
- felicity_db