#!/usr/bin/env bash

source .env

# DECLARE NAME OF THE DOCKER FILE TO CREATE
OUTPUT_FILE_NAME=docker-compose.yml

# DELETE CURRENT docker-compose.yml FILE
if [ -f $OUTPUT_FILE_NAME ]; then
    rm $OUTPUT_FILE_NAME
fi

# MAIN CONTENT OF THE docker-compose.yml FILE
read -d '' DOCKER_COMPOSE_FILE <<-EOF
# ${ENVIRONMENT}
---
version: "2"

services:

  app:
    image: docker.it-consultis.com.cn/itc/nginx-php-fpm:0.2.1
    container_name: ${COMPOSE_PROJECT_NAME}_app
    ports:
      - "${DOCKER_HOST_HTTP_PORT}:80"
    links:
      - db
      - cache
    volumes:
      - ./.docker/environments/${ENVIRONMENT}/etc/nginx:/etc/nginx
      - ./.docker/environments/${ENVIRONMENT}/etc/php/7.0/fpm/pool.d:/etc/php/7.0/fpm/pool.d
      - ./.runtime/var/log/nginx:/var/log/nginx
      - ./.runtime/var/log/mysql:/var/log/mysql
    volumes_from:
      - storage
    env_file: .env
    environment:
      APP_ENV: ${ENVIRONMENT}

  db:
    image: docker.it-consultis.com.cn/library/percona:5.7.15
    container_name: ${COMPOSE_PROJECT_NAME}_db
    env_file: .env
    environment:
      - MYSQL_DATABASE=${DB_DATABASE}
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
    expose:
      - "3306"
    volumes_from:
      - storage

  cache:
    image: docker.it-consultis.com.cn/library/redis:3.2-alpine
    container_name: ${COMPOSE_PROJECT_NAME}_cache
    expose:
      - "6379"

  storage:
    image: docker.it-consultis.com.cn/library/true
    container_name: ${COMPOSE_PROJECT_NAME}_storage
    volumes:
      - .:/project
      - ./src:/var/www/html
      - ./transfer:/transfer

EOF

echo "$DOCKER_COMPOSE_FILE" >> $OUTPUT_FILE_NAME
printf "\n" >> $OUTPUT_FILE_NAME

echo "Created $OUTPUT_FILE_NAME"
