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: