version: '3.8'
services:

  demo:
    image: ehazlett/docker-demo
    deploy:
      replicas: 1
      labels:
        com.docker.lb.hosts: aitrainer.app
        com.docker.lb.network: bosi-network
        com.docker.lb.port: 8080
        com.docker.lb.ssl_cert: demo_app.example.org.cert
        com.docker.lb.ssl_key: demo_app.example.org.key
    environment:
      METADATA: proxy-handles-tls
    networks:
      - demo-network

  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: 'gitlab'
    restart: always
    hostname: 'localhost'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://aitrainer.app'
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = "email-smtp.eu-west-1.amazonaws.com"
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_user_name'] = "AKIAIWHHQDMPADT7ETHQ"
        gitlab_rails['smtp_password'] = "AjCB8NA+61i/URp09gik0HHtbEuy48e4JXhuPaqGacFs"
        gitlab_rails['smtp_domain'] = "aitrainer.app"
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
        # Add any other gitlab.rb configuration here, each on its own line
        gitlab_rails['gitlab_shell_ssh_port'] = 6622
    ports:
      - '80:80'
      - '443:443'
      - '6622:22'
      - '587:587'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
  mysql:
    image: mysql:latest
    volumes:
      - db_data:/var/lib/mysql_aitrainer
    restart: always
    ports:
      - 33061:33061
    environment:
      MYSQL_ROOT_PASSWORD: /run/secrets/mysql_root_pwd
      MYSQL_DATABASE: aitrainer
      MYSQL_USER: aitrainer
      MYSQL_PASSWORD: /run/secrets/mysql_user_pwd
    networks:
      - bosi_default

  phpmyadmin:
    depends_on:
      - mysql
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8081:80'
    environment:
      PMA_HOST: mysql
      MYSQL_ROOT_PASSWORD: andio2009
    networks:
      - bosi_default
  php:
    image: php:7.2-fpm
    volumes:
      - php:/var/www/html
      - ./php/php.ini:/usr/local/etc/php/php.ini
    depends_on:
      - mysql
  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    restart: always
    networks:
      - bosi_default
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /srv/gitlab-runner/config:/etc/gitlab-runner
secrets:
  mysql_root_pwd:
    file: /.sec/mysql_root_pwd
  mysql_user_pwd:
    file: /.sec/mysql_user_pwd
networks:
  bosi_default:
volumes:
  db_data:
  php:



  openssl req \
  -new \
  -newkey rsa:4096 \
  -days 3650 \
  -nodes \
  -x509 \
  -subj "/C=US/ST=CA/L=SF/O=Docker-demo/CN=aitrainer.app" \
  -keyout aitrainer.app.key \
  -out aitrainer.app.cert

version: "3.2"

services:
  demo:
    image: proxy
    command: --tls-cert=/run/secrets/cert.pem --tls-key=/run/secrets/key.pem
    deploy:
      replicas: 1
      labels:
        com.docker.lb.hosts: aitrainer.app
        com.docker.lb.network: proxy-network
        com.docker.lb.port: 8029
        com.docker.lb.ssl_passthrough: "true"
    environment:
      METADATA: end-to-end-TLS
    networks:
      - proxy-network
    secrets:
      - source: aitrainer.app.cert
        target: /run/secrets/cert.pem
      - source: aitrainer.app.org.key
        target: /run/secrets/key.pem

networks:
  demo-network:
    driver: overlay
secrets:
  aitrainer.app.cert:
    file: ./aitrainer.app.cert
  aitrainer.app.key:
    file: ./aitrainer.app.key