services: mysql: restart: unless-stopped image: mysql:8.0 hostname: mysql volumes: - /path/to/semaphore/semaphore-mysql:/var/lib/mysql environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} semaphore: container_name: ansiblesemaphore restart: unless-stopped ports: - ${HTTP_PORT}:3000 image: semaphoreui/semaphore:latest environment: SEMAPHORE_DB_USER: ${SEMAPHORE_DB_USER} SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASS} SEMAPHORE_DB_HOST: ${SEMAPHORE_DB_HOST} # for postgres, change to: postgres SEMAPHORE_DB_PORT: ${SEMAPHORE_DB_PORT} # change to 5432 for postgres SEMAPHORE_DB_DIALECT: ${SEMAPHORE_DB_DIALECT} # for postgres, change to: postgres SEMAPHORE_DB: ${SEMAPHORE_DB} SEMAPHORE_PLAYBOOK_PATH: ${SEMAPHORE_PLAYBOOK_PATH} SEMAPHORE_ADMIN_PASSWORD: ${SEMAPHORE_ADMIN_PASSWORD} SEMAPHORE_ADMIN_NAME: ${SEMAPHORE_ADMIN_NAME} SEMAPHORE_ADMIN_EMAIL: ${SEMAPHORE_ADMIN_EMAIL} SEMAPHORE_ADMIN: ${SEMAPHORE_ADMIN} SEMAPHORE_ACCESS_KEY_ENCRYPTION: ${SEMAPHORE_ACCESS_KEY_ENCRYPTION} TZ: ${TZ} volumes: - /path/to/semaphore/requirements.txt:/etc/semaphore/requirements.txt depends_on: - mysql # for postgres, change to: postgres volumes: semaphore-mysql: # to use postgres, switch to: semaphore-postgres