networks: proxy: external: true semaphore: name: semaphore external: false volumes: semaphore: name: semaphore semaphore-db: name: semaphore-db services: semaphore: image: semaphoreui/semaphore container_name: semaphore environment: SEMAPHORE_DB_USER: ${DB_USER} SEMAPHORE_DB_PASS: ${DB_PASS} SEMAPHORE_DB_HOST: semaphore-db SEMAPHORE_DB_PORT: 3306 SEMAPHORE_DB: ${DB_NAME} SEMAPHORE_PLAYBOOKPATH: /tmp/semaphore/ SEMAPHORE_ADMIN_PASSWORD: secret SEMAPHORE_ADMIN_NAME: Christian Steinle SEMAPHORE_ADMIN_EMAIL: christiansteinle@arcor.de SEMAPHORE_ADMIN: chris SEMAPHORE_ACCESS_KEY_ENCRYPTION: wZEu1RmBxogY2brsK3SQHGJCY/DVbkmzXhdDB5FXpXU= depends_on: - semaphore-db restart: unless-stopped networks: - proxy - semaphore volumes: - semaphore:/home/semaphore:rw labels: - "traefik.enable=true" - "traefik.http.routers.semaphore.entrypoints=web" - "traefik.http.routers.semaphore.rule=Host(`semaphore.lan`)" - "traefik.http.routers.semaphore.service=semaphore" - "traefik.http.services.semaphore.loadbalancer.server.port=3000" semaphore-db: image: mysql:8 container_name: semaphore-db hostname: semaphore-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_PASS} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASS} MYSQL_DATABASE: ${DB_NAME} volumes: - semaphore-db:/var/lib/mysql networks: - semaphore healthcheck: test: [ "CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)" ]