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