version: "2.2"
services:
{{#if webContainer}}
  web:
  {{#if_eq webImage 'php'}}
    build:
      context: .docker
      dockerfile: php/Dockerfile
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/web
    init: true
    restart: ${DOCKER_DEVBOX_RESTART_POLICY}
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/var/www/html"
      - "${COMPOSE_PROJECT_DIR}/.docker/php/apache.conf:/etc/apache2/sites-enabled/000-default.conf"
      - "composer-cache:/composer/cache"
  {{/if_eq ~}}
{{/if ~}}
{{#if dbContainer}}
  db:
  {{#if_eq dbImage 'postgres'}}
    build:
      context: .docker
      dockerfile: postgres/Dockerfile
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/postgres
    init: true
    restart: ${DOCKER_DEVBOX_RESTART_POLICY}
    environment:
      - POSTGRES_USER={{projectName}}
      - POSTGRES_PASSWORD={{projectName}}
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/workdir" # Mount this volume to help loading/exporting dumps
      - "postgres:/var/lib/postgresql/data"
  {{/if_eq ~}}
  {{#if_eq dbImage 'mysql'}}
    build:
      context: .docker
      dockerfile: mysql/Dockerfile
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/mysql
    init: true
    restart: ${DOCKER_DEVBOX_RESTART_POLICY}
    environment:
      - MYSQL_ROOT_PASSWORD={{projectName}}
      - MYSQL_DATABASE={{projectName}}
      - MYSQL_USER={{projectName}}
      - MYSQL_PASSWORD={{projectName}}
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/workdir" # Mount this volume to help loading/exporting dumps
      - "mysql:/var/lib/mysql/"
  {{/if_eq ~}}
{{/if ~}}
{{#if nodeSassContainer}}
  node-sass:
    build:
      context: .docker
      dockerfile: node-sass/Dockerfile
      args:
        GROUP_ID: "${GROUP_ID}"
        USER_ID: "${USER_ID}"
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/node-sass
    init: true
    entrypoint: "/bin/true"
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/app"
      - "node-sass-cache:/home/node/.cache"
      - "node-sass-npm-packages:/home/node/.npm-packages"
{{#if phingContainer}}
      - "${COMPOSE_PROJECT_DIR}/.phing:/build"
{{/if ~}}
{{/if ~}}
{{#if nodeContainer}}
  node:
    build:
      context: .docker
      dockerfile: node/Dockerfile
      args:
        GROUP_ID: "${GROUP_ID}"
        USER_ID: "${USER_ID}"
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/node
    init: true
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/app"
      - "node-cache:/home/node/.cache"
      - "node-npm-packages:/home/node/.npm-packages"
{{/if ~}}
{{#if phingContainer}}
  phing:
    build:
      context: .docker
      dockerfile: phing/Dockerfile
      args:
        DOCKER_VERSION: ${DOCKER_VERSION}
        DOCKER_COMPOSE_VERSION: ${DOCKER_COMPOSE_VERSION}
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/phing
    init: true
    environment:
      - COMPOSE_PROJECT_DIR=${COMPOSE_PROJECT_DIR}
      - BUILD_WORKING_DIR=/app
    privileged: true
    working_dir: "/app"
    entrypoint: "/bin/true"
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/app"
      - "/var/run/docker.sock:/var/run/docker.sock"
{{/if ~}}
{{#if mapserverContainer}}
  mapserver:
    build:
      context: .docker
      dockerfile: mapserver/Dockerfile
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/mapserver
    init: true
    restart: ${DOCKER_DEVBOX_RESTART_POLICY}
    environment:
      - LISTEN_PORT_80=1
    volumes:
      - "${COMPOSE_PROJECT_DIR}/.docker/mapserver:/etc/mapserver"
    user: "${USER_ID}"
{{/if ~}}
{{#if sonarScannerContainer}}
  sonar-scanner:
    build:
      context: .docker
      dockerfile: sonar-scanner/Dockerfile
    image: ${DOCKER_DEVBOX_REGISTRY}{{projectName}}/sonar-scanner
    command: "--version"
    volumes:
      - "${COMPOSE_PROJECT_DIR}:/root/src"
{{/if ~}}
volumes:
{{#if_eq webImage 'php'}}
  composer-cache: ~
{{/if_eq ~}}
{{#if_eq dbImage 'postgres'}}
  postgres: ~
{{/if_eq ~}}
{{#if_eq dbImage 'mysql'}}
  mysql: ~
{{/if_eq ~}}
{{#if nodeContainer}}
  node-cache: ~
  node-npm-packages: ~
{{/if}}
{{#if nodeSassContainer}}
  node-sass-cache: ~
  node-sass-npm-packages: ~
{{/if}}
