cdefbe3a81
Signed-off-by: Gato <cedric@goutailler-olivier.fr>
84 lines
2.3 KiB
YAML
84 lines
2.3 KiB
YAML
name: bonsai
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: bonsai-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: bonsai
|
|
POSTGRES_USER: bonsai
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
TZ: Europe/Paris
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U bonsai -d bonsai"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
volumes:
|
|
- ~/Applications/data/bonsai/db_data:/var/lib/postgresql/data
|
|
networks:
|
|
- bonsai-net
|
|
|
|
api:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.api
|
|
ssh:
|
|
- default
|
|
container_name: bonsai-api
|
|
restart: unless-stopped
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
DATASOURCE_URL: jdbc:postgresql://db:5432/bonsai
|
|
DATASOURCE_USERNAME: bonsai
|
|
DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
|
|
KEYCLOAK_JWKS_URI: https://auth.goutailler-olivier.com/realms/bonsai/protocol/openid-connect/certs
|
|
CORS_ALLOWED_ORIGIN_PROD: https://bonsai.goutailler-olivier.com
|
|
SERVER_SERVLET_CONTEXT_PATH: /api
|
|
TZ: Europe/Paris
|
|
volumes:
|
|
- ~/Applications/data/bonsai/uploads:/app/uploads
|
|
networks:
|
|
- bonsai-net
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.bonsai-api.rule=Host(`bonsai.goutailler-olivier.com`) && PathPrefix(`/api`)
|
|
- traefik.http.routers.bonsai-api.entrypoints=websecure
|
|
- traefik.http.routers.bonsai-api.tls.certresolver=le
|
|
- traefik.http.services.bonsai-api.loadbalancer.server.port=8080
|
|
- traefik.docker.network=proxy
|
|
|
|
webapp:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.webapp
|
|
ssh:
|
|
- default
|
|
container_name: bonsai-webapp
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- api
|
|
environment:
|
|
TZ: Europe/Paris
|
|
networks:
|
|
- bonsai-net
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.bonsai-webapp.rule=Host(`bonsai.goutailler-olivier.com`)
|
|
- traefik.http.routers.bonsai-webapp.entrypoints=websecure
|
|
- traefik.http.routers.bonsai-webapp.tls.certresolver=le
|
|
- traefik.http.services.bonsai-webapp.loadbalancer.server.port=80
|
|
- traefik.docker.network=proxy
|
|
|
|
networks:
|
|
bonsai-net:
|
|
driver: bridge
|
|
proxy:
|
|
external: true
|
|
name: proxy
|