version: "3.7"

services:

  web:
      build:
        context: .
        dockerfile: ./Dockerfile
      container_name: backoffice
      volumes:
        - .:/aitrainer_backoffice
        - media:/aitrainer_backoffice/aitrainer_backoffice/media
        - static:/aitrainer_backoffice/aitrainer_backoffice/static
      depends_on:
        - mysql-server
      ports:
        - "8002:8000"
      environment:
        - GOOGLE_APPLICATION_CREDENTIALS=/aitrainer_backoffice/aitrainer_backoffice/aitrainer_backoffice/asset/aitrainer-firebase-adminsdk.json
        - WORKOUTTEST_SETTING=PROD
      command: gunicorn aitrainer_backoffice.aitrainer_backoffice.wsgi --env DJANGO_SETTINGS_MODULE=aitrainer_backoffice.aitrainer_backoffice.settings.prod --bind 0.0.0.0:8000 --workers 3

  cronjobs:
      build:
        context: .
        dockerfile: ./Dockerfile
      environment:
        - GOOGLE_APPLICATION_CREDENTIALS=/aitrainer_backoffice/aitrainer_backoffice/aitrainer_backoffice/asset/aitrainer-firebase-adminsdk.json
        - WORKOUTTEST_SETTING=DEPLOY
        - DJANGO_KEY=${DJANGO_KEY}
      command: ["cron", "-f"]      

  mysql-server:
    image: mysql:8.0.21
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
    volumes:
        - mysql-data-backoffice:/var/lib/mysql
        - /home/bosi/backoffice/aitrainer_backoffice/mysqlconf:/etc/mysql/conf.d
    ports:
      - "33060:3306"

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    environment:
      PMA_HOST: mysql-server
      PMA_USER: $MYSQL_USER
      PMA_PASSWORD: $MYSQL_ROOT_PASSWORD
    ports:
      - "8085:80"
    volumes:
      - ./htpasswd:/etc/phpmyadmin/.htpasswd
      - ./phpmyadmin.config.php:/etc/phpmyadmin/config.user.inc.php

  wordpress:
    image: wordpress
    container_name: wordpress
    restart: always
    links:
      - mysql-server:mysql
    depends_on:
      - mysql-server
    ports:
      - "8090:80"
    environment:
      UPLOAD_LIMIT: 512M
      UPLOAD_MAX_FILESIZE: 128M
      WORDPRESS_DB_HOST: mysql-server
      WORDPRESS_DB_USER: $MYSQL_USER
      WORDPRESS_DB_PASSWORD: $MYSQL_ROOT_PASSWORD
      WORDPRESS_DB_NAME: wp
    volumes:
      - wordpress:/var/www/html
      - ./wp_php_custom.ini:/usr/local/etc/php/conf.d/uploads.ini
      - ./wp_htaccess:/var/www/html/.htaccess

  mautic:
    image: mautic/mautic:v3
    container_name: mautic
    links:
      - mysql-server:mysql
    depends_on:
      - mysql-server
    ports:
      - "8091:80"
    volumes:
      - mautic_data:/var/www/html
    environment:
      - MAUTIC_DB_HOST=mysql-server
      - MAUTIC_DB_USER=$MYSQL_USER
      - MAUTIC_DB_PASSWORD=$MYSQL_ROOT_PASSWORD
      - MAUTIC_DB_NAME=mautic
      - MAUTIC_RUN_CRON_JOBS=true

  api:
    #    container_name: api_server
    image: api_server:latest
    build: .
    depends_on:
     - mysql-server
    restart: always
    working_dir: /aitrainer_server
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql-server:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
    command: bash -c "SERVER_PORT=8888 java -jar aitrainer_server.jar --spring.profiles.active=prod"
    ports:
     - "8888:8888"

  api_test_ssl:
    image: api_server_ssl_test:latest
    build: .
    depends_on:
     - mysql-server
    restart: always
    working_dir: /aitrainer_server
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql-server:3306/aitrainer_test?serverTimezone=CET&useSSL=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
    command: bash -c "SERVER_PORT=8843 java -jar aitrainer_server.jar --spring.profiles.active=prodtest"
    ports:
     - "8843:8843"

  api_ssl:
    image: api_server_ssl:latest
    build: .
    depends_on:
     - mysql-server
    restart: always
    working_dir: /aitrainer_server
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql-server:3306/aitrainer?serverTimezone=CET&useSSL=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
    command: bash -c "SERVER_PORT=8943 java -jar aitrainer_server.jar --spring.profiles.active=prod"
    ports:
     - "8943:8943"


  wiki:
    image: requarks/wiki:2
    depends_on:
     - mysql-server
    environment:
      DB_TYPE: mysql
      DB_HOST: mysql-server
      DB_PORT: 3306
      DB_USER: $MYSQL_USER
      DB_PASS: $MYSQL_ROOT_PASSWORD
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "3000:3000"

volumes:
  mysql-data-backoffice:
  media:
  static:  
  wordpress:
  mautic_data: