services: db: image: ghcr.io/jonasfranz/openrailwaymap-import-db:latest build: context: db ports: - '5432:5432' shm_size: 1g environment: - POSTGRES_HOST_AUTH_METHOD=trust - PG_WORK_MEM - PG_MAINTENANCE_WORK_MEM - PGDATA=/var/lib/postgresql/postgres-data - POSTGRES_DB=gis healthcheck: test: pg_isready -U postgres -d gis interval: 1s timeout: 1s retries: 3 start_period: 5m import: image: ghcr.io/jonasfranz/openrailwaymap-import:latest build: dockerfile: import/Dockerfile cache_from: - ghcr.io/jonasfranz/openrailwaymap-import:latest command: - import depends_on: db: condition: service_healthy volumes: - ./data:/data environment: - PGHOST=db - PGUSER=postgres - PG_WORK_MEM - PG_MAINTENANCE_WORK_MEM - OSM2PGSQL_NUMPROC - OSM2PGSQL_DATAFILE data: image: ghcr.io/jonasfranz/openrailwaymap-data:latest build: context: data dockerfile: Dockerfile command: - sleep - inf martin: image: ghcr.io/jonasfranz/openrailwaymap-martin:latest build: dockerfile: martin.Dockerfile depends_on: db: condition: service_healthy environment: - DATABASE_URL=postgresql://postgres@db:5432/gis ulimits: nproc: 65535 nofile: soft: 26677 hard: 46677 develop: watch: - action: rebuild path: martin - action: rebuild path: symbols martin-proxy: image: ghcr.io/jonasfranz/openrailwaymap-proxy:latest build: dockerfile: proxy.Dockerfile ports: - '8000:8000' - '443:443' environment: TILES_UPSTREAM: martin:3000 API_UPSTREAM: api:5000 PUBLIC_PROTOCOL: http PUBLIC_HOST: localhost:8000 NGINX_RESOLVER: '127.0.0.11 ipv6=off' NGINX_CACHE_TTL: '0' CLIENT_CACHE_TTL_ASSETS_FRESH: '0' CLIENT_CACHE_TTL_ASSETS_STALE: '0' CLIENT_CACHE_TTL_API_FRESH: '0' CLIENT_CACHE_TTL_API_STALE: '0' CLIENT_CACHE_TTL_TILES_FRESH: '0' CLIENT_CACHE_TTL_TILES_STALE: '0' develop: watch: - action: rebuild path: proxy - action: rebuild path: features api: image: ghcr.io/jonasfranz/openrailwaymap-api:latest build: context: api environment: - PORT=5000 - HOST=0.0.0.0 - POSTGRES_USER=postgres - POSTGRES_HOST=db - POSTGRES_DB=gis ports: - '5000:5000' develop: watch: - action: rebuild path: api