172 lines
4.3 KiB
YAML
172 lines
4.3 KiB
YAML
services:
|
|
keycloak:
|
|
image: hub.anxietyprime.de/swa-jodel/keycloak:latest
|
|
container_name: swa-keycloak
|
|
command: ["start"]
|
|
env_file:
|
|
- ./.keycloak-env
|
|
- ./.hostname
|
|
environment:
|
|
KC_DB: postgres
|
|
KC_DB_SCHEMA: public
|
|
KC_DB_URL: jdbc:postgresql://keycloak-db/keycloak
|
|
#KC_HTTP_RELATIVE_PATH: /auth
|
|
PROXY_ADDRESS_FORWARDING: true
|
|
KC_PROXY: edge
|
|
KC_HOSTNAME_STRICT: false
|
|
KC_HTTP_ENABLED: true
|
|
expose:
|
|
- 8080
|
|
networks:
|
|
swa-public:
|
|
swa-keycloak:
|
|
ipv4_address: 10.42.0.3
|
|
swa-keycloak-db:
|
|
ipv4_address: 10.42.0.10
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.keycloak.rule=Host($KC_HOSTNAME)"
|
|
- "traefik.http.routers.keycloak.entrypoints=websecure"
|
|
- "traefik.http.routers.keycloak.tls.domains[0].main=$KC_HOSTNAME"
|
|
# - "traefik.http.routers.keycloak.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.keycloak.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.keycloak.service=keycloak"
|
|
healthcheck:
|
|
test: echo ""
|
|
interval: 15s
|
|
timeout: 15s
|
|
retries: 30
|
|
depends_on:
|
|
keycloak-db:
|
|
condition: service_healthy
|
|
restart: always
|
|
|
|
keycloak-db:
|
|
image: hub.anxietyprime.de/swa-jodel/keycloak-db:latest
|
|
container_name: swa-keycloak-db
|
|
env_file:
|
|
- ./.keycloak-env
|
|
- ./.hostname
|
|
volumes:
|
|
- ./keycloak-db/:/var/lib/postgresql/data
|
|
expose:
|
|
- 5432
|
|
networks:
|
|
swa-keycloak-db:
|
|
ipv4_address: 10.42.0.11
|
|
healthcheck:
|
|
test: pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB
|
|
start_period: 5s
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
restart: always
|
|
|
|
frontend:
|
|
image: hub.anxietyprime.de/swa-jodel/frontend:latest
|
|
container_name: swa-frontend
|
|
expose:
|
|
- 80
|
|
networks:
|
|
swa-public:
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.web-jodel.rule=Host($JODEL_HOSTNAME)"
|
|
- "traefik.http.routers.web-jodel.entrypoints=websecure"
|
|
- "traefik.http.routers.web-jodel.tls.domains[0].main=$JODEL_HOSTNAME"
|
|
# - "traefik.http.routers.web-jodel.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.web-jodel.loadbalancer.server.port=80"
|
|
- "traefik.http.routers.web-jodel.service=web-jodel"
|
|
healthcheck:
|
|
test: echo ""
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
restart: always
|
|
|
|
backend:
|
|
image: hub.anxietyprime.de/swa-jodel/backend:latest
|
|
container_name: swa-backend
|
|
env_file:
|
|
- ./.backend-env
|
|
- ./.hostname
|
|
expose:
|
|
- 8080
|
|
networks:
|
|
swa-public:
|
|
swa-keycloak:
|
|
ipv4_address: 10.42.0.2
|
|
swa-database:
|
|
ipv4_address: 10.42.0.18
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.api-jodel.rule=Host($API_HOSTNAME)"
|
|
- "traefik.http.routers.api-jodel.entrypoints=websecure"
|
|
- "traefik.http.routers.api-jodel.tls.domains[0].main=$API_HOSTNAME"
|
|
# - "traefik.http.routers.api-jodel.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.api-jodel.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.api-jodel.service=api-jodel"
|
|
healthcheck:
|
|
test: echo ""
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
depends_on:
|
|
keycloak:
|
|
condition: service_healthy
|
|
database:
|
|
condition: service_healthy
|
|
restart: always
|
|
|
|
database:
|
|
image: hub.anxietyprime.de/swa-jodel/database:latest
|
|
container_name: swa-database
|
|
env_file:
|
|
- ./.backend-env
|
|
volumes:
|
|
- ./backend-db/:/var/lib/postgresql/data
|
|
expose:
|
|
- 5432
|
|
networks:
|
|
swa-database:
|
|
ipv4_address: 10.42.0.19
|
|
healthcheck:
|
|
test: pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB
|
|
start_period: 5s
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
restart: always
|
|
|
|
networks:
|
|
default:
|
|
external: false
|
|
|
|
swa-public:
|
|
external:
|
|
name: traefik
|
|
|
|
swa-keycloak:
|
|
name: swa-keycloak
|
|
ipam:
|
|
config:
|
|
- subnet: 10.42.0.0/29
|
|
internal: true
|
|
|
|
swa-keycloak-db:
|
|
name: swa-keycloak-db
|
|
ipam:
|
|
config:
|
|
- subnet: 10.42.0.8/29
|
|
internal: true
|
|
|
|
swa-database:
|
|
name: swa-database
|
|
ipam:
|
|
config:
|
|
- subnet: 10.42.0.16/29
|
|
internal: true
|