143 lines
3.5 KiB
YAML
143 lines
3.5 KiB
YAML
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 |