92 lines
2.9 KiB
YAML
92 lines
2.9 KiB
YAML
version: "3"
|
|
services:
|
|
|
|
#
|
|
# Database Container
|
|
#
|
|
mysql:
|
|
image: mysql:8.0
|
|
hostname: mysql
|
|
environment:
|
|
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
|
|
MYSQL_DATABASE: "${SEMAPHOREUI_DATABASE_NAME}"
|
|
MYSQL_USER: "${SEMAPHOREUI_DATABASE_USERNAME}"
|
|
MYSQL_PASSWORD: "${SEMAPHOREUI_DATABASE_PASSWORD}"
|
|
TZ: 'Europe/Berlin'
|
|
volumes:
|
|
- semaphore-mysql:/var/lib/mysql
|
|
restart: unless-stopped
|
|
|
|
#
|
|
# Application Container
|
|
#
|
|
semaphore:
|
|
image: semaphoreui/semaphore:latest
|
|
environment:
|
|
GIT_SSL_NO_VERIFY: 'true'
|
|
ANSIBLE_HOST_KEY_CHECKING: 'false'
|
|
SEMAPHORE_DB_USER: "${SEMAPHOREUI_DATABASE_USERNAME}"
|
|
SEMAPHORE_DB_PASS: "${SEMAPHOREUI_DATABASE_PASSWORD}"
|
|
SEMAPHORE_DB_HOST: mysql
|
|
SEMAPHORE_DB_PORT: 3306
|
|
SEMAPHORE_DB_DIALECT: mysql
|
|
SEMAPHORE_DB: "${SEMAPHOREUI_DATABASE_NAME}"
|
|
SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/
|
|
SEMAPHORE_ADMIN: "${SEMAPHOREUI_ADMIN_USERNAME}"
|
|
SEMAPHORE_ADMIN_NAME: "${SEMAPHOREUI_ADMIN_USERNAME}"
|
|
SEMAPHORE_ADMIN_PASSWORD: "${SEMAPHOREUI_ADMIN_PASSWORD}"
|
|
SEMAPHORE_ADMIN_EMAIL: "${SEMAPHOREUI_ADMIN_EMAIL}"
|
|
SEMAPHORE_ACCESS_KEY_ENCRYPTION: "${SEMAPHOREUI_ACCESS_KEY}"
|
|
SEMAPHORE_LDAP_ACTIVATED: 'yes'
|
|
SEMAPHORE_LDAP_HOST: "${SEMAPHOREUI_LDAP_HOST}"
|
|
SEMAPHORE_LDAP_PORT: '636'
|
|
SEMAPHORE_LDAP_NEEDTLS: 'yes'
|
|
SEMAPHORE_LDAP_DN_BIND: "${SEMAPHOREUI_LDAP_BIND_USERNAME}"
|
|
SEMAPHORE_LDAP_PASSWORD: "${SEMAPHOREUI_LDAP_BIND_PASSWORD}"
|
|
SEMAPHORE_LDAP_DN_SEARCH: 'dc=example,dc=com'
|
|
SEMAPHORE_LDAP_SEARCH_FILTER: "(&(sAMAccountName=%s)(memberOf=CN=semaphoreui.users,dc=example,dc=com))"
|
|
SEMAPHORE_LDAP_MAPPING_MAIL: 'mail'
|
|
SEMAPHORE_LDAP_MAPPING_UID: 'sAMAccountName'
|
|
SEMAPHORE_LDAP_MAPPING_DN: 'dn'
|
|
SEMAPHORE_LDAP_MAPPING_CN: 'cn'
|
|
SEMAPHORE_EMAIL_SENDER: "${SEMAPHOREUI_EMAIL_SENDER}"
|
|
SEMAPHORE_EMAIL_HOST: "${SEMAPHOREUI_SMTP_HOST}"
|
|
SEMAPHORE_EMAIL_PORT: "${SEMAPHOREUI_SMTP_PORT}"
|
|
SEMAPHORE_EMAIL_USERNAME: "${SEMAPHOREUI_SMTP_USERNAME}"
|
|
SEMAPHORE_EMAIL_PASSWORD: "${SEMAPHOREUI_SMTP_PASSWORD}"
|
|
SEMAPHORE_EMAIL_SECURE: 'true'
|
|
SEMAPHORE_EMAIL_ALERT: 'true'
|
|
TZ: 'Europe/Berlin'
|
|
ports:
|
|
- 127.0.0.1:3000:3000
|
|
volumes:
|
|
- /var/semaphoreui/requirements.txt:/etc/semaphore/requirements.txt
|
|
restart: unless-stopped
|
|
labels:
|
|
- "autoheal=true"
|
|
healthcheck:
|
|
test: curl --fail http://localhost:3000 || exit 1
|
|
interval: 60s
|
|
retries: 5
|
|
start_period: 20s
|
|
timeout: 10s
|
|
depends_on:
|
|
- mysql
|
|
|
|
#
|
|
# Autoheal Container
|
|
#
|
|
autoheal:
|
|
image: willfarrell/autoheal:latest
|
|
tty: true
|
|
restart: always
|
|
environment:
|
|
- AUTOHEAL_INTERVAL=60
|
|
- AUTOHEAL_START_PERIOD=300
|
|
- AUTOHEAL_DEFAULT_STOP_TIMEOUT=10
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
volumes:
|
|
semaphore-mysql:
|