# This docker-compose file is intended for development use. You can simply run # `docker-compose up -d` in the repository and it should build and run all # required parts of the application. See README.md for details. # # For a production docker setup, please check the corresponding documentation. version: '3' services: mongo: image: mongo tty: true volumes: - ./local/mongo:/data/db ports: - '27017:27017' restart: on-failure postgres: image: "openmaptiles/postgis:6.0" environment: POSTGRES_USER: obs POSTGRES_PASSWORD: obs POSTGRES_DB: obs ports: - '5432:5432' volumes: - ./local/postgres/data:/var/lib/postgresql/data api: image: obs-api build: context: ./api/ dockerfile: Dockerfile volumes: - ./api/obs:/opt/obs/api/obs - ./api/scripts/obs:/opt/obs/scripts/obs - ./api/tools:/opt/obs/api/tools - ./api/config.dev.py:/opt/obs/api/config.py - ./local/api-data:/data links: - postgres - keycloak ports: - '3000:3000' restart: on-failure command: - obs-api worker: image: obs-api build: context: ./api/ dockerfile: Dockerfile volumes: - ./api/obs:/opt/obs/api/obs - ./api/scripts/obs:/opt/obs/scripts/obs - ./api/tools:/opt/obs/api/tools - ./api/config.dev.py:/opt/obs/api/config.py - ./local/api-data:/data links: - postgres - keycloak restart: on-failure command: - python - tools/process_track.py frontend: image: obs-frontend build: context: ./frontend volumes: - ./frontend/src:/opt/obs/frontend/src - ./frontend/public:/opt/obs/frontend/public - ./frontend/tsconfig.json:/opt/obs/frontend/tsconfig.json - ./frontend/package.json:/opt/obs/frontend/package.json # Overwrite the default config with the development mode configuration - ./frontend/config.dev.json:/opt/obs/frontend/public/config.json environment: - PORT=3000 links: - api - tileserver ports: - '3001:3000' restart: on-failure command: - npm - start openmaptiles-tools: image: openmaptiles/openmaptiles-tools:6.0 environment: # Must match the version of this file (first line) # download-osm will use it when generating a composer file MAKE_DC_VERSION: "3" # Allow DIFF_MODE, MIN_ZOOM, and MAX_ZOOM to be overwritten from shell DIFF_MODE: ${DIFF_MODE} MIN_ZOOM: ${MIN_ZOOM} MAX_ZOOM: ${MAX_ZOOM} #Provide BBOX from *.bbox file if exists, else from .env BBOX: ${BBOX} # Imposm configuration file describes how to load updates when enabled IMPOSM_CONFIG_FILE: ${IMPOSM_CONFIG_FILE} # Control import-sql processes MAX_PARALLEL_PSQL: ${MAX_PARALLEL_PSQL} PGDATABASE: obs PGUSER: obs PGPASSWORD: obs PGHOST: postgres PGPORT: 5432 volumes: - ./tile-generator/:/tileset - ./tile-generator/data:/import - ./tile-generator/data:/export - ./tile-generator/build/sql:/sql - ./tile-generator/build:/mapping - ./tile-generator/cache:/cache generate-vectortiles: image: openmaptiles/generate-vectortiles:6.0 volumes: - ./tile-generator/data:/export - ./tile-generator/build/openmaptiles.tm2source:/tm2source environment: MBTILES_NAME: ${MBTILES_FILE} BBOX: ${BBOX} MIN_ZOOM: ${MIN_ZOOM} MAX_ZOOM: ${MAX_ZOOM} # Control tilelive-copy threads COPY_CONCURRENCY: ${COPY_CONCURRENCY} # PGDATABASE: obs PGUSER: obs PGPASSWORD: obs PGHOST: postgres PGPORT: 5432 tileserver: image: klokantech/tileserver-gl ports: - 3002:80 volumes: - ./tile-generator/tileserver-gl-config.json:/config/tileserver.json - ./tile-generator/data/:/data command: - --config - /config/tileserver.json keycloak: image: jboss/keycloak ports: - 3003:8080 links: - postgres environment: KEYCLOAK_USER: admin KEYCLOAK_PASSWORD: admin KEYCLOAK_FRONTEND_URL: http://localhost:3003/auth/ DB_VENDOR: postgres DB_ADDR: postgres DB_DATABASE: obs DB_USER: obs DB_PASSWORD: obs # DB_SCHEMA: keycloak