-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yaml
More file actions
92 lines (88 loc) · 3.38 KB
/
compose.yaml
File metadata and controls
92 lines (88 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
volumes:
pmw-data:
geoserver-data:
networks:
tailormap:
external: true
name: ${TAILORMAP_COMPOSE_PROJECT_NAME:-tailormap-planmonitor-wonen-snapshot}_default
reverse-proxy:
external: true
name: ${PROXY_NETWORK:-traefik}
services:
pmw-db:
container_name: ${COMPOSE_PROJECT_NAME}-pmw-db
image: postgis/postgis:16-3.5
restart: unless-stopped
environment:
POSTGRES_USER: planmonitor-wonen
POSTGRES_PASSWORD: ${PMW_DB_PASSWORD:-planmonitor-wonen}
volumes:
- pmw-data:/var/lib/postgresql/data
networks:
- default
- reverse-proxy
- tailormap
labels:
- "traefik.tcp.routers.postgres-pmw.rule=HostSNI(`${HOST}`)"
- "traefik.tcp.routers.postgres-pmw.tls=true"
- "traefik.tcp.routers.postgres-pmw.tls.certresolver=letsencrypt"
- "traefik.tcp.routers.postgres-pmw.entrypoints=postgres-pmw"
- "traefik.tcp.middlewares.postgres-pmw-ipallowlist.ipallowlist.sourcerange=${PMW_IP_ALLOWLIST_RANGE}"
- "traefik.tcp.routers.postgres-pmw.middlewares=postgres-pmw-ipallowlist"
- "traefik.tcp.services.postgres-pmw.loadbalancer.server.port=5432"
- "traefik.docker.network=traefik"
- "traefik.enable=true"
healthcheck:
interval: 1m
timeout: 5s
retries: 2
start_period: 20s
start_interval: 8s
test: pg_isready -U planmonitor-wonen
pmw-api:
container_name: ${COMPOSE_PROJECT_NAME}-pmw-api
image: ghcr.io/b3partners/planmonitor-wonen-api:${PMW_API_VERSION:-snapshot}
restart: unless-stopped
depends_on:
pmw-db:
condition: service_healthy
environment:
- "TZ=Europe/Amsterdam"
- "SERVER_ADDRESS=0.0.0.0"
- "SPRING_DATASOURCE_URL=jdbc:postgresql://pmw-db/planmonitor-wonen"
- "TAILORMAP_DATASOURCE_URL=jdbc:postgresql://db/tailormap"
- "SPRING_DATASOURCE_PASSWORD=${PMW_DB_PASSWORD:-planmonitor-wonen}"
networks:
- default
- reverse-proxy
- tailormap
labels:
- "traefik.http.services.${COMPOSE_PROJECT_NAME}-pmw.loadbalancer.server.port=8081"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-pmw.rule=Host(`${HOST:-localhost}`) && PathPrefix(`/api/planmonitor-wonen`)"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-pmw.tls=true"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-pmw.tls.certresolver=letsencrypt"
- "traefik.docker.network=${PROXY_NETWORK:-traefik}"
- "traefik.enable=true"
geoserver:
container_name: ${COMPOSE_PROJECT_NAME}-geoserver
image: docker.osgeo.org/geoserver:2.28.2
environment:
SKIP_DEMO_DATA: true
GEOSERVER_CSRF_WHITELIST: ${HOST}
INSTALL_EXTENSIONS: false
STABLE_EXTENSIONS: web-resource,geopkg-output,excel,css
PROXY_BASE_URL: https://${HOST}/geoserver
volumes:
- geoserver-data:/opt/geoserver_data
networks:
- default
- reverse-proxy
- tailormap
labels:
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-geoserver.rule=Host(`${HOST:-localhost}`) && PathPrefix(`/geoserver`)"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-geoserver.tls=true"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-geoserver.tls.certresolver=letsencrypt"
- "traefik.http.services.${COMPOSE_PROJECT_NAME}-geoserver.loadbalancer.server.port=8080"
- "traefik.docker.network=${PROXY_NETWORK:-traefik}"
- "traefik.enable=true"
restart: unless-stopped