-
Notifications
You must be signed in to change notification settings - Fork 1
/
compose.yaml
123 lines (117 loc) · 3.85 KB
/
compose.yaml
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
services:
vue:
build:
context: ./vue
target: vue_dev
args:
- VITE_DOMAIN=${DOMAIN}
image: vue:latest
restart: on-failure
ports:
- ${VUE_PORT:-3000}:3000
volumes:
- ./vue:/app:rw,cached
- vue_node_modules:/app/node_modules:rw,cached
frankenphp:
build:
context: ./symfony
image: ${COMPOSE_PROJECT_NAME}-frankenphp
restart: unless-stopped
environment:
SERVER_NAME: ${DOMAIN:-localhost}, frankenphp:${HTTP_PORT:-80}
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16}
TRUSTED_HOSTS: ${TRUSTED_HOSTS:-^${DOMAIN:-puc\.local|localhost}|frankenphp$$}
DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@${POSTGRES_HOST:-postgres}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-16}&charset=${POSTGRES_CHARSET:-utf8}
VUE_PORT: ${VUE_PORT:-3000}
DOCS_PORT: ${DOCS_PORT:-5000}
QGIS_SERVER_PORT: ${QGIS_SERVER_PORT:-6000}
NOMINATIM_PORT: ${NOMINATIM_PORT:-7000}
DOMAIN: ${DOMAIN}
CADDY_PROTOCOL: ${CADDY_PROTOCOL:-https}
HTTP_PORT: ${HTTP_PORT:-80}
HTTPS_PORT: ${HTTPS_PORT:-443}
cap_add:
- NET_ADMIN
depends_on:
- postgres
- vue
- qgis
- docs
ports:
- ${HTTP_PORT:-80}:80
- ${HTTPS_PORT:-443}:443
- ${HTTPS_PORT:-443}:443/udp
volumes:
- caddy_data:/data
- caddy_config:/config
docs:
build:
context: ./docs
target: docs_dev
image: docs:latest
restart: on-failure
ports:
- ${DOCS_PORT:-5000}:5000
volumes:
- ./docs:/app:rw,cached
- docs_node_modules:/app/node_modules:rw,cached
postgres:
image: postgis/postgis:${POSTGIS_VERSION:-16-3.5}-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-app}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}
POSTGRES_USER: ${POSTGRES_USER:-app}
PGPORT: ${POSTGRES_PORT:-5432}
healthcheck:
test: ["CMD", "pg_isready", "-d", "${POSTGRES_DB:-app}", "-U", "${POSTGRES_USER:-app}"]
timeout: 5s
retries: 5
start_period: 60s
ports:
- ${POSTGRES_PORT:-5432}:5432
volumes:
- ./docker/postgres/data:/var/lib/postgresql/data:rw
nominatim:
image: mediagis/nominatim:4.2
ports:
- ${NOMINATIM_PORT:-7000}:8080
environment:
# see https://github.com/mediagis/nominatim-docker/tree/master/4.2#configuration for more options
PBF_URL: https://download.geofabrik.de/africa/cameroon-latest.osm.pbf
REPLICATION_URL: https://download.geofabrik.de/africa/cameroon-updates/
NOMINATIM_PASSWORD: ${NOMINATIM_PASSWORD:-very_secure_password}
volumes:
- nominatim-data:/var/lib/postgresql/14/main
shm_size: 1gb
qgis:
image: qgis/qgis-server:${QGIS_SERVER_VERSION:-ltr}
environment:
# Do not run the embedded copy of nginx
# SKIP_NGINX: "true"
# Improve rendering performance
QGIS_SERVER_PARALLEL_RENDERING: "true"
QGIS_SERVER_MAX_THREADS: 4
# Limit the maximum size returned by a GetMap
QGIS_SERVER_WMS_MAX_HEIGHT: 5000
QGIS_SERVER_WMS_MAX_WIDTH: 5000
# Enable logging
# QGIS_SERVER_LOG_LEVEL: 0
# QGIS_SERVER_LOG_PROFILE: "true"
ports:
- ${QGIS_SERVER_PORT:-6000}:80
volumes:
# Data should be mount RO when working
# with GeoPackages and more than one QGIS container
- ./docker/qgis/data:/io/data:ro
- ./docker/qgis/plugins:/io/plugins
- ./docker/qgis/svg:/var/lib/qgis/.local/share/QGIS/QGIS3/profiles/default/svg
# - ./docker/qgis/fonts:/usr/share/fonts # Causing nginx 404 issues
# - ./conf/pg_service.conf:/etc/postgresql-common/pg_service.conf:ro
restart: on-failure
volumes:
caddy_data:
caddy_config:
vue_node_modules:
docs_node_modules:
database_data:
nominatim-data: