version: '3.3'

services:
  db:
    image: postgis/postgis:12-3.1-alpine
    ports:
      - "5432:5432"
    volumes:
      - "pg-data:/var/lib/postgresql/data"
    environment:
      - "POSTGRES_PASSWORD=postgres"
  citizen-front:
    build:
      dockerfile: ./Dockerfile-front
      context: .
    image: registry.gitlab.com/champs-libres/geonature-citizen/front
    volumes:
      - ./vendor/GeoNature-citizen/frontend:/home/appuser/citizen/frontend
      - ./patches/settings.ini:/home/appuser/citizen/config/settings.ini
      - ./patches/frontend/src/conf:/home/appuser/citizen/frontend/src/conf
      - ./patches/frontend/src/assets:/home/appuser/citizen/frontend/src/assets
      - ./patches/frontend/src/custom:/home/appuser/citizen/frontend/src/custom
      - ./patches/frontend/server.ts:/home/appuser/citizen/frontend/server.ts
      - ./dist:/home/appuser/citizen/frontend/dist
      # re files installed by npm install
      - ./node_modules:/home/appuser/citizen/frontend/node_modules
    ports:
      - "4000:4000"
      - "4200:4200"
    command: npm run serve:ssr
    environment:
      # avoid goodle analytics question
      - "NG_CLI_ANALYTICS=false"
  citizen-back:
    build:
      dockerfile: ./Dockerfile-back
      context: .
    image: registry.gitlab.com/champs-libres/geonature-citizen/back
    volumes:
      - ./vendor/GeoNature-citizen/backend/gncitizen/:/home/appuser/citizen/backend/gncitizen/
      - ./patches/settings.ini:/home/appuser/citizen/config/settings.ini
      - ./patches/back/default_config.toml:/home/appuser/citizen/config/default_config.toml
      - ./patches/back/wsgi.py:/home/appuser/citizen/backend/wsgi.py
      - ./patches/back/server.py:/home/appuser/citizen/backend/server.py
    ports:
      - "5002:5002"
    command:  python wsgi.py
  taxhub:
    build:
      dockerfile: ./Dockerfile-taxhub
      context: .
    image: registry.gitlab.com/champs-libres/geonature-citizen/taxhub
    ports:
      - "5000:5000"
    volumes:
      - ./patches/taxhub/config.py:/home/appuser/taxhub/config.py
      - ./patches/taxhub/server.py:/home/appuser/taxhub/server.py
      - ./patches/taxhub/install_db.sh:/home/appuser/taxhub/install_db.sh
      - ./patches/taxhub/settings.ini:/home/appuser/taxhub/settings.ini
    command: python server.py

  media:
    build:
      context: .
      dockerfile: ./media/Dockerfile
    image: registry.gitlab.com/champs-libres/geonature-citizen/media
    ports:
      - "8082:80"
  nginx:
    build:
      context: ./nginx
      dockerfile: ./Dockerfile
    image: registry.gitlab.com/champs-libres/geonature-citizen/nginx
    # volumes:
    #  - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - "media"
      - "citizen-front"
      - "citizen-back"
      - "taxhub"
    ports:
      - "8080:80"
  pgweb:
    image: sosedoff/pgweb
    ports:
      - 8081:8081
volumes:
  pg-data:
