inasafe/inasafe

View on GitHub
.devcontainer/docker-compose.yml

Summary

Maintainability
Test Coverage
version: '3.4'
volumes:
  guacamole-db:
services:
  # qgis-desktop-latest:
  #   build: 
  #     context: .devcontainer/qgis-desktop
  #     args:
  #       IMAGE: qgis/qgis
  #       QGIS_VERSION_TAG: latest
  #   environment:
  #     QGIS_VERSION_TAG: "latest"
  #     WITH_PYTHON_PEP: "${WITH_PYTHON_PEP}"
  #     INASAFE_LOGGING_LEVEL: 50
  #     INASAFE_DISABLE_WELCOME_MESSAGE: 1
  #     ON_TRAVIS: "${ON_TRAVIS}"
  #     MUTE_LOGS: "${MUTE_LOGS}"
  #   working_dir: /home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe
  #   volumes:
  #     # Update this to wherever you want VS Code to mount the folder of your project
  #     - .:/home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe:cached
  
  qgis-desktop-3-20:
    build: 
      context: .devcontainer/qgis-desktop
      args:
        IMAGE: qgis/qgis
        QGIS_VERSION_TAG: release-3_20
    environment:
      QGIS_VERSION_TAG: "release-3_20"
      WITH_PYTHON_PEP: "${WITH_PYTHON_PEP}"
      INASAFE_LOGGING_LEVEL: 50
      INASAFE_DISABLE_WELCOME_MESSAGE: 1
      ON_TRAVIS: "${ON_TRAVIS}"
      MUTE_LOGS: "${MUTE_LOGS}"
    # working_dir: /home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe
    # volumes:
    #   # Update this to wherever you want VS Code to mount the folder of your project
    #   - .:/home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe:cached
    working_dir: /workspace
    volumes:
      - .devcontainer/qgis-desktop/entrypoint.py:/opt/docker-entrypoint.py
      - .:/workspace:cached
      - .:/tests_directory:cached
  
  # qgis-desktop-3-16:
  #   build: 
  #     context: .devcontainer/qgis-desktop
  #     args:
  #       IMAGE: qgis/qgis
  #       QGIS_VERSION_TAG: release-3_16
  #   environment:
  #     QGIS_VERSION_TAG: "release-3_16"
  #     WITH_PYTHON_PEP: "${WITH_PYTHON_PEP}"
  #     INASAFE_LOGGING_LEVEL: 50
  #     INASAFE_DISABLE_WELCOME_MESSAGE: 1
  #     ON_TRAVIS: "${ON_TRAVIS}"
  #     MUTE_LOGS: "${MUTE_LOGS}"
  #   working_dir: /workspace
  #   volumes:
  #     # Update this to wherever you want VS Code to mount the folder of your project
  #     - .:/workspace:cached
  #   # working_dir: /home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe
  #   # volumes:
  #   #   # Update this to wherever you want VS Code to mount the folder of your project
  #   #   - .:/home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe:cached

  # qgis-desktop-3-14:
  #   build: 
  #     context: .devcontainer/qgis-desktop
  #     args:
  #       IMAGE: qgis/qgis
  #       QGIS_VERSION_TAG: release-3_14
  #   environment:
  #     QGIS_VERSION_TAG: "release-3_14"
  #     WITH_PYTHON_PEP: "${WITH_PYTHON_PEP}"
  #     INASAFE_LOGGING_LEVEL: 50
  #     INASAFE_DISABLE_WELCOME_MESSAGE: 1
  #     ON_TRAVIS: "${ON_TRAVIS}"
  #     MUTE_LOGS: "${MUTE_LOGS}"
  #   working_dir: /home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe
  #   volumes:
  #     # Update this to wherever you want VS Code to mount the folder of your project
  #     - .:/home/gisuser/.local/share/QGIS/QGIS3/profiles/default/python/plugins/inasafe:cached
      
  guacamole-client:
    image: guacamole/guacamole:1.3.0
    ports:
    - "8080:8080"
    volumes:
      - ./.devcontainer/guacamole:/etc/guacamole
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRES_HOSTNAME: guacamole-db
      POSTGRES_DATABASE: guaca
      POSTGRES_USER: guaca
      POSTGRES_PASSWORD: guaca

  guacd:
    image: guacamole/guacd:1.3.0

  guacamole-db:
    image: kartoza/postgis:13-3.1
    environment:
      POSTGRES_USER: guaca
      POSTGRES_PASSWORD: guaca
      POSTGRES_DBNAME: guaca
      ALLOWED_HOSTS: "0.0.0.0/0"
      PASSWORD_AUTHENTICATION: "md5"
    volumes:
    - ./.devcontainer/postgis/initdb.d:/docker-entrypoint-initdb.d
    - guacamole-db:/var/lib/postgresql

  # Update this to the name of the service you want to work with in your docker-compose.yml file
  qgis-testing-environment:
    # If you want add a non-root user to your Dockerfile, you can use the "remoteUser"
    # property in devcontainer.json to cause VS Code its sub-processes (terminals, tasks, 
    # debugging) to execute as the user. Uncomment the next line if you want the entire 
    # container to run as this user instead. Note that, on Linux, you may need to 
    # ensure the UID and GID of the container user you create matches your local user. 
    # See https://aka.ms/vscode-remote/containers/non-root for details.
    #
    # user: vscode

    # Uncomment if you want to override the service's Dockerfile to one in the .devcontainer 
    # folder. Note that the path of the Dockerfile and context is relative to the *primary* 
    # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile"
    # array). The sample below assumes your primary file is in the root of your project.
    #
    # build:
    #   context: .
    #   dockerfile: .devcontainer/Dockerfile

    init: true
    
    volumes:
      # Update this to wherever you want VS Code to mount the folder of your project
      - .:/workspace:cached

      # Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details.
      - /var/run/docker.sock:/var/run/docker.sock 

    # Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust.
    # cap_add:
    #   - SYS_PTRACE
    # security_opt:
    #   - seccomp:unconfined

    # Overrides default command so things don't shut down after the process ends.
    command: /bin/sh -c "while sleep 1000; do :; done"