96 lines
2.7 KiB
YAML
96 lines
2.7 KiB
YAML
services:
|
|
scylla:
|
|
image: scylladb/scylla:latest
|
|
container_name: scylla
|
|
command: --smp 4 --memory 16G --overprovisioned 0 --api-address 0.0.0.0 --max-memory-for-unlimited-query-hard-limit 4294967296
|
|
|
|
volumes:
|
|
- scylla-data:/var/lib/scylla
|
|
networks:
|
|
- maps-net
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: map-redis
|
|
command: redis-server --maxmemory 5gb --maxmemory-policy allkeys-lru
|
|
volumes:
|
|
- redis_data:/data
|
|
networks:
|
|
- maps-net
|
|
restart: always
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
target: backend
|
|
container_name: map-app
|
|
networks:
|
|
- proxy
|
|
- maps-net
|
|
environment:
|
|
- REDIS_URI=redis://map-redis:6379
|
|
depends_on:
|
|
- scylla
|
|
restart: always
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.maps.entrypoints=http
|
|
- traefik.http.routers.maps.rule=Host(`maps.ekstrah.com`)
|
|
- traefik.http.middlewares.maps-redirect.redirectscheme.permanent=true
|
|
- traefik.http.middlewares.maps-redirect.redirectscheme.scheme=https
|
|
- traefik.http.routers.maps.middlewares=maps-redirect
|
|
- traefik.http.routers.maps-secure.entrypoints=https
|
|
- traefik.http.routers.maps-secure.rule=Host(`maps.ekstrah.com`)
|
|
- traefik.http.routers.maps-secure.tls=true
|
|
- traefik.http.routers.maps-secure.tls.certresolver=cloudflare
|
|
- traefik.http.routers.maps-secure.service=maps-secure-service
|
|
- traefik.http.services.maps-secure-service.loadbalancer.server.port=3000
|
|
|
|
importer:
|
|
build:
|
|
context: .
|
|
target: importer
|
|
container_name: map-importer
|
|
volumes:
|
|
- ${HOST_PBF_PATH:-./europe-latest.osm.pbf}:/app/data.osm.pbf
|
|
- ${HOST_CACHE_DIR:-./cache}:/cache
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities:
|
|
- gpu
|
|
- compute
|
|
- utility
|
|
environment:
|
|
- SCYLLA_URI=scylla:9042
|
|
- OSM_PBF_PATH=/app/data.osm.pbf
|
|
- CACHE_DIR=/cache
|
|
- VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
|
|
- NVIDIA_VISIBLE_DEVICES=all
|
|
- NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics
|
|
# - DEBUG_WAY_ID=99 # Logs detailed info for specific way
|
|
# - VERBOSE_DEBUG=1 # Logs transit line relations
|
|
# - DEBUG_MESH=1 # Logs mesh generation and vertex buffer info
|
|
depends_on:
|
|
- scylla
|
|
profiles:
|
|
- import
|
|
networks:
|
|
- maps-net
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|
|
maps-net:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
scylla-data:
|
|
driver: local
|
|
redis_data:
|
|
|