version: '3.1' # specify docker-compose version

volumes:
  # Set up with `docker volume create ...`. See docker/README.md for more info.
  data_volume:
    external: true
  pg_data_volume:

services:
  # Runs from the latest release
  my-project-name:
    image: somebody/my-project-name
    restart: always
    volumes:
      - data_volume:/data
    # Used for allowing connections to homeservers hosted on the host machine
    # (while docker host mode is still broken on Linux).
    #
    # Defaults to 127.0.0.1 and is set in docker/.env
    extra_hosts:
      - "localhost:${HOST_IP_ADDRESS}"

  # Builds and runs an optimized container from local code
  local-checkout:
    build:
      context: ..
      dockerfile: docker/Dockerfile
      # Build arguments may be specified here
      # args:
      #  PYTHON_VERSION: 3.8
    volumes:
      - data_volume:/data
    # Used for allowing connections to homeservers hosted on the host machine
    # (while docker host networking mode is still broken on Linux).
    #
    # Defaults to 127.0.0.1 and is set in docker/.env
    extra_hosts:
      - "localhost:${HOST_IP_ADDRESS}"

  # Builds and runs a development container from local code
  local-checkout-dev:
    build:
      context: ..
      dockerfile: docker/Dockerfile.dev
      # Build arguments may be specified here
      # args:
      #  PYTHON_VERSION: 3.8
    volumes:
      - data_volume:/data
    # Used for allowing connections to homeservers hosted on the host machine
    # (while docker host networking mode is still broken on Linux).
    #
    # Defaults to 127.0.0.1 and is set in docker/.env
    extra_hosts:
      - "localhost:${HOST_IP_ADDRESS}"

  # Starts up a postgres database
  postgres:
    image: postgres
    restart: always
    volumes:
      - pg_data_volume:/var/lib/postgresql/data
    environment:
        POSTGRES_PASSWORD: somefancypassword