mirror of
https://github.com/dedicatedcode/reitti.git
synced 2026-01-07 00:23:52 -05:00
106 lines
2.8 KiB
YAML
106 lines
2.8 KiB
YAML
services:
|
|
reitti:
|
|
image: dedicatedcode/reitti:latest
|
|
ports:
|
|
- 8080:8080
|
|
depends_on:
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
postgis:
|
|
condition: service_healthy
|
|
restart: true
|
|
redis:
|
|
condition: service_healthy
|
|
tile-cache:
|
|
condition: service_healthy
|
|
volumes:
|
|
- reitti-data:/data/
|
|
environment:
|
|
PHOTON_BASE_URL: http://photon:2322
|
|
POSTGIS_USER: reitti
|
|
POSTGIS_PASSWORD: reitti
|
|
POSTGIS_DB: reittidb
|
|
POSTGIS_HOST: postgis
|
|
postgis:
|
|
image: postgis/postgis:17-3.5-alpine
|
|
environment:
|
|
POSTGRES_USER: reitti
|
|
POSTGRES_PASSWORD: reitti
|
|
POSTGRES_DB: reittidb
|
|
volumes:
|
|
- postgis-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U reitti -d reittidb"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
rabbitmq:
|
|
image: rabbitmq:3-management-alpine
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: reitti
|
|
RABBITMQ_DEFAULT_PASS: reitti
|
|
volumes:
|
|
- rabbitmq-data:/var/lib/rabbitmq
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
redis:
|
|
image: redis:7-alpine
|
|
volumes:
|
|
- redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
photon:
|
|
image: rtuszik/photon-docker:1.2.1
|
|
environment:
|
|
- UPDATE_STRATEGY=PARALLEL
|
|
- REGION=de #set your main country code here to save space or drop this line to fetch the whole index.
|
|
volumes:
|
|
- photon-data:/photon/data
|
|
|
|
tile-cache:
|
|
image: nginx:alpine
|
|
environment:
|
|
NGINX_CACHE_SIZE: 1g
|
|
command: |
|
|
sh -c "
|
|
mkdir -p /var/cache/nginx/tiles
|
|
cat > /etc/nginx/nginx.conf << 'EOF'
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
proxy_cache_path /var/cache/nginx/tiles levels=1:2 keys_zone=tiles:10m max_size=1g inactive=30d use_temp_path=off;
|
|
|
|
server {
|
|
listen 80;
|
|
location / {
|
|
proxy_pass https://tile.openstreetmap.org/;
|
|
proxy_set_header Host tile.openstreetmap.org;
|
|
proxy_set_header User-Agent \"Reitti/1.0 \\(+https://github.com/dedicatedcode/reitti; contact: reitti@dedicatedcode.com\\)\";
|
|
proxy_cache tiles;
|
|
proxy_cache_valid 200 30d;
|
|
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
nginx -g 'daemon off;'"
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1/0/0/0.png"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
volumes:
|
|
postgis-data:
|
|
rabbitmq-data:
|
|
redis-data:
|
|
photon-data:
|
|
reitti-data:
|