example docker-compose.yml for Semaphore-UI

This commit is contained in:
Stefan 2025-01-04 16:57:54 +01:00
parent f4f33e0386
commit 0ec1d492ca

View File

@ -0,0 +1,91 @@
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: