version: '3.4'

networks:
  traefik:
    external: true

services:
###########
## MYSQL ##
###########
## MariaDB is currently not supported and neither is later versions of MySQL this may change.
## https://hub.docker.com/r/_/mariadb/
  mysql:
    image: mysql.5.7.23
    restart: always
    networks:
      traefik:
        ipv4_address: 10.5.1.11
        aliases:
          - mysql
    environment:
      ## These variables are stored in the .env file next to this docker-compose.yml file.
      ## I will include a default .env file and .gitignore the ".env" pattern so you should be able to just git pull in the future if you need to.
      MYSQL_SERVER: ${MYSQL_SERVER:-10.5.1.11}
      MYSQL_USER: ${MYSQL_USER:-changeme}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-changeme}
      MYSQL_DATABASE: ${MYSQL_DATABASE:-reflector}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-changeme}
    expose:
      - 3306
    volumes:
      - ./data/db:/var/lib/mysql

##################
## reflector.go ##
##################
  reflector-go:
    build: .
    restart: always
    networks:
      traefik:
        ipv4_address: 10.5.1.20
    environment:
      AWS_ID: ${AWS_ID:-default}
      AWS_SECRET: ${AWS_SECRET:-default}
      BUCKET_REGION: ${BUCKET_REGION:-default}
      BUCKET_NAME: ${BUCKET_NAME:-default}
      DB_USER: ${MYSQL_USER:-changeme}
      DB_PASSWORD: ${MYSQL_PASSWORD:-changeme}
      DB_HOSTIP: ${MYSQL_SERVER:-10.5.1.11}
      DB_PORT: ${DB_PORT:-3306}
      DB_NAME: ${MYSQL_DATABASE:-reflector}
    labels:
      - "traefik.expose=false"
    depends_on:
      - mysql