From 1cb1ce0d9947b3459024fcb31115080810b01d25 Mon Sep 17 00:00:00 2001 From: Steven Guikal Date: Tue, 19 Oct 2021 15:23:00 -0400 Subject: [PATCH] feat(docker): allow production docker setup to use dedicated mariadb Signed-off-by: Steven Guikal --- .env | 1 + docker-compose.override.yml | 23 +++++++++++++++++++++++ docker-compose.prod.yml | 9 ++++++++- docker-compose.yml | 21 --------------------- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/.env b/.env index 630e856d..92b6bbd2 100644 --- a/.env +++ b/.env @@ -1,2 +1,3 @@ FASTAPI_BACKEND="uvicorn" FASTAPI_WORKERS=2 +MARIADB_SOCKET_DIR="/var/run/mysqld/" diff --git a/docker-compose.override.yml b/docker-compose.override.yml index c0bee88c..26718ac6 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,4 +1,24 @@ services: + mariadb: + image: aurweb:latest + init: true + entrypoint: /docker/mariadb-entrypoint.sh + command: /usr/bin/mysqld_safe --datadir=/var/lib/mysql + ports: + # This will expose mariadbd on 127.0.0.1:13306 in the host. + # Ex: `mysql -uaur -paur -h 127.0.0.1 -P 13306 aurweb` + - "13306:3306" + volumes: + - mariadb_run:/var/run/mysqld # Bind socket in this volume. + - mariadb_data:/var/lib/mysql + healthcheck: + test: "bash /docker/health/mariadb.sh" + + mariadb_init: + depends_on: + mariadb: + condition: service_healthy + ca: volumes: - ./cache:/cache @@ -13,6 +33,9 @@ services: - git_data:/aurweb/aur.git - ./cache:/cache - smartgit_run:/var/run/smartgit + depends_on: + mariadb: + condition: service_healthy php-fpm: volumes: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index eb75343b..c63d63f5 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -9,6 +9,7 @@ services: volumes: - git_data:/aurweb/aur.git - cache:/cache + - ${MARIADB_SOCKET_DIR}:/var/run/mysqld smartgit: volumes: @@ -19,12 +20,18 @@ services: php-fpm: volumes: - cache:/cache + - ${MARIADB_SOCKET_DIR}:/var/run/mysqld fastapi: environment: - FASTAPI_BACKEND="gunicorn" volumes: - cache:/cache + - ${MARIADB_SOCKET_DIR}:/var/run/mysqld + + mariadb_init: + volumes: + - ${MARIADB_SOCKET_DIR}:/var/run/mysqld nginx: volumes: @@ -34,7 +41,7 @@ services: - smartgit_run:/var/run/smartgit volumes: - mariadb_run: {} # Share /var/run/mysqld/mysqld.sock + mariadb_run: {} # Share /var/run/mysqld mariadb_data: {} # Share /var/lib/mysql git_data: {} # Share aurweb/aur.git smartgit_run: {} diff --git a/docker-compose.yml b/docker-compose.yml index 55c3527d..3d1da263 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,29 +48,11 @@ services: ports: - "16379:6379" - mariadb: - image: aurweb:latest - init: true - entrypoint: /docker/mariadb-entrypoint.sh - command: /usr/bin/mysqld_safe --datadir=/var/lib/mysql - ports: - # This will expose mariadbd on 127.0.0.1:13306 in the host. - # Ex: `mysql -uaur -paur -h 127.0.0.1 -P 13306 aurweb` - - "13306:3306" - volumes: - - mariadb_run:/var/run/mysqld # Bind socket in this volume. - - mariadb_data:/var/lib/mysql - healthcheck: - test: "bash /docker/health/mariadb.sh" - mariadb_init: image: aurweb:latest init: true entrypoint: /docker/mariadb-init-entrypoint.sh command: echo "MariaDB tables initialized." - depends_on: - mariadb: - condition: service_healthy volumes: - mariadb_run:/var/run/mysqld @@ -100,9 +82,6 @@ services: command: /docker/scripts/run-smartgit.sh healthcheck: test: "bash /docker/health/smartgit.sh" - depends_on: - mariadb: - condition: service_healthy cgit-php: image: aurweb:latest