From bc29872c841d9133612a163c67f9331a9e111907 Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 23 Feb 2022 07:56:15 +0100 Subject: [PATCH] Deliver complete semaphore stack. Remove obsolete networks and common mysql. --- automation/.env | 4 ++++ automation/docker-compose.yaml | 37 +++++++++++++++++++++++++++------- docker-compose.yaml | 25 ----------------------- mysql_databases.sql | 6 ------ 4 files changed, 34 insertions(+), 38 deletions(-) create mode 100644 automation/.env delete mode 100644 mysql_databases.sql diff --git a/automation/.env b/automation/.env new file mode 100644 index 0000000..f81f285 --- /dev/null +++ b/automation/.env @@ -0,0 +1,4 @@ +DB_USER=semaphore +DB_NAME=semaphore +DB_PASS=Zk5FM#*9uAFzt6n6TGD! + diff --git a/automation/docker-compose.yaml b/automation/docker-compose.yaml index 5f983ac..b03398d 100644 --- a/automation/docker-compose.yaml +++ b/automation/docker-compose.yaml @@ -3,33 +3,38 @@ version: "3.9" networks: proxy: external: true - internal: - external: true + semaphore: + name: semaphore + external: false volumes: semaphore: name: semaphore + semaphore-db: + name: semaphore-db services: semaphore: image: ansiblesemaphore/semaphore container_name: semaphore environment: - SEMAPHORE_DB_USER: semaphore - SEMAPHORE_DB_PASS: Zk5FM#*9uAFzt6n6TGD! - SEMAPHORE_DB_HOST: mysql8 + SEMAPHORE_DB_USER: ${DB_USER} + SEMAPHORE_DB_PASS: ${DB_PASS} + SEMAPHORE_DB_HOST: semaphore-db SEMAPHORE_DB_PORT: 3306 - SEMAPHORE_DB: semaphore + 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: /Rzt40/8gnKzYNDktdtDRZ8FVDJoF5y4Z1fETIylc7Y= + depends_on: + - semaphore-db restart: unless-stopped networks: - proxy - - internal + - semaphore volumes: - semaphore:/home/semaphore:rw labels: @@ -39,3 +44,21 @@ services: - "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 + command: --default-authentication-plugin=mysql_native_password + 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)"] + diff --git a/docker-compose.yaml b/docker-compose.yaml index f325c4d..df3a3dd 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -4,18 +4,10 @@ networks: proxy: external: false name: proxy - internal: - external: false - driver: bridge - name: internal volumes: letsencrypt: name: letsencrypt - mysql8-data: - name: mysql8-data - mysql8-backup: - name: mysql8-backup portainer: name: portainer @@ -59,7 +51,6 @@ services: - "traefik.http.services.traefik.loadbalancer.server.port=8080" networks: - proxy - - internal portainer: image: portainer/portainer-ce @@ -78,19 +69,3 @@ services: - "traefik.http.routers.portainer.service=portainer" - "traefik.http.services.portainer.loadbalancer.server.port=9000" - mysql8: - image: mysql:8 - container_name: mysql8 - command: --default-authentication-plugin=mysql_native_password - restart: unless-stopped - environment: - MYSQL_ROOT_PASSWORD: "${DB_ROOT_PW}" - volumes: - - mysql8-data:/var/lib/mysql - - mysql8-backup:/var/backups - - ${PWD}/mysql_databases.sql:/docker-entrypoint-initdb.d/01_create_databases.sql - networks: - - internal - healthcheck: - test: ["CMD-SHELL", "mysqladmin ping -uroot -p$$(DB_ROOT_PW)"] - diff --git a/mysql_databases.sql b/mysql_databases.sql deleted file mode 100644 index 83619db..0000000 --- a/mysql_databases.sql +++ /dev/null @@ -1,6 +0,0 @@ -# create the databases -CREATE DATABASE IF NOT EXISTS `semaphore`; - -# create users and privileges -CREATE USER 'semaphore'@'%' IDENTIFIED BY 'Zk5FM#*9uAFzt6n6TGD!'; -GRANT ALL PRIVILEGES ON semaphore.* TO 'semaphore'@'%';