# Development containers, these should only be used if you are developing. version: '3' services: db: # https://github.com/docker-library/docs/tree/master/postgres image: postgres:12 environment: - POSTGRES_DB=wrolpi - POSTGRES_PASSWORD=wrolpi ports: - "5432:5432" healthcheck: test: [ 'CMD-SHELL', 'pg_isready -U postgres' ] api: depends_on: - db build: context: . dockerfile: docker/api/Dockerfile volumes: - './main.py:/opt/wrolpi/main.py' - './wrolpi:/opt/wrolpi/wrolpi' - './modules:/opt/wrolpi/modules' - './test:/opt/wrolpi/test' - './test:/media/wrolpi' - './alembic:/opt/wrolpi/alembic' - './alembic.ini:/opt/wrolpi/alembic.ini' ports: - ${REACT_APP_API-127.0.0.1:8081}:8081 command: '-vv api --host 0.0.0.0' user: '${UID-1000}:${GID-1000}' # healthcheck: # test: [ 'CMD-SHELL', 'curl http://127.0.0.1:8081/api/echo' ] archive: build: context: . dockerfile: docker/archive/Dockerfile volumes: - './docker/archive/main.py:/app/main.py' ports: - '8083:8080' healthcheck: test: [ 'CMD-SHELL', 'curl http://127.0.0.1:8080/' ] app: depends_on: - api build: context: . dockerfile: docker/app/Dockerfile volumes: - './app/public:/app/public' - './app/src:/app/src' - './app/package.json:/app/package.json' - '.env:/app/.env' command: 'npm run start' stdin_open: true healthcheck: test: [ 'CMD-SHELL', 'curl http://127.0.0.1:3000' ] user: '${UID-1000}:${GID-1000}' map: # https://github.com/Overv/openstreetmap-tile-server image: overv/openstreetmap-tile-server:v1.6.0 volumes: - 'openstreetmap-data:/var/lib/postgresql/12/main' - 'openstreetmap-rendered-tiles:/var/lib/mod_tile' - './modules/map/leaflet.html:/var/www/html/index.html' - './modules/map/leaflet.js:/var/www/html/leaflet.js' - './modules/map/leaflet.css:/var/www/html/leaflet.css' ports: - '8084:80' command: 'run' shm_size: 1g # Increase shared size to render large map tiles web: depends_on: - app image: nginx:latest ports: - ${WEB_HOST-0.0.0.0}:${WEB_PORT-8080}:80 volumes: - './nginx.dev.conf:/etc/nginx/nginx.conf' - './icon.ico:/etc/nginx/favicon.ico' - './icon.png:/etc/nginx/icon.png' - './test:/opt/media' healthcheck: test: [ 'CMD-SHELL', 'curl http://127.0.0.1:80' ] volumes: openstreetmap-data: external: true openstreetmap-rendered-tiles: external: true