Merge branch 'feat-host-maridb-cfg' into pu

This commit is contained in:
Kevin Morris 2021-10-19 14:33:05 -07:00
commit f4cfc7c5ca
No known key found for this signature in database
GPG key ID: F7E46DED420788F3
10 changed files with 45 additions and 78 deletions

1
.env
View file

@ -1,2 +1,3 @@
FASTAPI_BACKEND="uvicorn" FASTAPI_BACKEND="uvicorn"
FASTAPI_WORKERS=2 FASTAPI_WORKERS=2
MARIADB_SOCKET_DIR="/var/run/mysqld/"

View file

@ -10,12 +10,12 @@
backend = mysql backend = mysql
; If using sqlite, set name to the database file path. ; If using sqlite, set name to the database file path.
name = aurweb_test name = aurweb
; MySQL database information. User defaults to root for containerized ; MySQL database information. User defaults to root for containerized
; testing with mysqldb. This should be set to a non-root user. ; testing with mysqldb. This should be set to a non-root user.
user = root user = aur
;password = non-root-user-password password = aur
host = localhost host = localhost
;port = 3306 ;port = 3306
socket = /var/run/mysqld/mysqld.sock socket = /var/run/mysqld/mysqld.sock

View file

@ -1,4 +1,24 @@
services: 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: ca:
volumes: volumes:
- ./cache:/cache - ./cache:/cache
@ -13,6 +33,9 @@ services:
- git_data:/aurweb/aur.git - git_data:/aurweb/aur.git
- ./cache:/cache - ./cache:/cache
- smartgit_run:/var/run/smartgit - smartgit_run:/var/run/smartgit
depends_on:
mariadb:
condition: service_healthy
php-fpm: php-fpm:
volumes: volumes:

View file

@ -9,6 +9,7 @@ services:
volumes: volumes:
- git_data:/aurweb/aur.git - git_data:/aurweb/aur.git
- cache:/cache - cache:/cache
- ${MARIADB_SOCKET_DIR}:/var/run/mysqld
smartgit: smartgit:
volumes: volumes:
@ -19,12 +20,18 @@ services:
php-fpm: php-fpm:
volumes: volumes:
- cache:/cache - cache:/cache
- ${MARIADB_SOCKET_DIR}:/var/run/mysqld
fastapi: fastapi:
environment: environment:
- FASTAPI_BACKEND="gunicorn" - FASTAPI_BACKEND="gunicorn"
volumes: volumes:
- cache:/cache - cache:/cache
- ${MARIADB_SOCKET_DIR}:/var/run/mysqld
mariadb_init:
volumes:
- ${MARIADB_SOCKET_DIR}:/var/run/mysqld
nginx: nginx:
volumes: volumes:
@ -34,7 +41,7 @@ services:
- smartgit_run:/var/run/smartgit - smartgit_run:/var/run/smartgit
volumes: volumes:
mariadb_run: {} # Share /var/run/mysqld/mysqld.sock mariadb_run: {} # Share /var/run/mysqld
mariadb_data: {} # Share /var/lib/mysql mariadb_data: {} # Share /var/lib/mysql
git_data: {} # Share aurweb/aur.git git_data: {} # Share aurweb/aur.git
smartgit_run: {} smartgit_run: {}

View file

@ -48,38 +48,19 @@ services:
ports: ports:
- "16379:6379" - "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: mariadb_init:
image: aurweb:latest image: aurweb:latest
init: true init: true
environment:
- DB_HOST=mariadb
entrypoint: /docker/mariadb-init-entrypoint.sh entrypoint: /docker/mariadb-init-entrypoint.sh
command: echo "MariaDB tables initialized." command: echo "MariaDB tables initialized."
depends_on: volumes:
mariadb: - mariadb_run:/var/run/mysqld
condition: service_healthy
git: git:
image: aurweb:latest image: aurweb:latest
init: true init: true
environment: environment:
- AUR_CONFIG=/aurweb/conf/config - AUR_CONFIG=/aurweb/conf/config
- DB_HOST=mariadb
entrypoint: /docker/git-entrypoint.sh entrypoint: /docker/git-entrypoint.sh
command: /docker/scripts/run-sshd.sh command: /docker/scripts/run-sshd.sh
ports: ports:
@ -89,6 +70,8 @@ services:
depends_on: depends_on:
mariadb_init: mariadb_init:
condition: service_started condition: service_started
volumes:
- mariadb_run:/var/run/mysqld
smartgit: smartgit:
image: aurweb:latest image: aurweb:latest
@ -99,9 +82,6 @@ services:
command: /docker/scripts/run-smartgit.sh command: /docker/scripts/run-smartgit.sh
healthcheck: healthcheck:
test: "bash /docker/health/smartgit.sh" test: "bash /docker/health/smartgit.sh"
depends_on:
mariadb:
condition: service_healthy
cgit-php: cgit-php:
image: aurweb:latest image: aurweb:latest
@ -138,7 +118,6 @@ services:
init: true init: true
environment: environment:
- AUR_CONFIG=/aurweb/conf/config - AUR_CONFIG=/aurweb/conf/config
- DB_HOST=mariadb
entrypoint: /docker/php-entrypoint.sh entrypoint: /docker/php-entrypoint.sh
command: /docker/scripts/run-php.sh command: /docker/scripts/run-php.sh
healthcheck: healthcheck:
@ -150,6 +129,8 @@ services:
condition: service_healthy condition: service_healthy
memcached: memcached:
condition: service_healthy condition: service_healthy
volumes:
- mariadb_run:/var/run/mysqld
ports: ports:
- "19000:9000" - "19000:9000"
@ -158,7 +139,6 @@ services:
init: true init: true
environment: environment:
- AUR_CONFIG=conf/config - AUR_CONFIG=conf/config
- DB_HOST=mariadb
- FASTAPI_WORKERS=${FASTAPI_WORKERS} - FASTAPI_WORKERS=${FASTAPI_WORKERS}
entrypoint: /docker/fastapi-entrypoint.sh entrypoint: /docker/fastapi-entrypoint.sh
command: /docker/scripts/run-fastapi.sh "${FASTAPI_BACKEND}" command: /docker/scripts/run-fastapi.sh "${FASTAPI_BACKEND}"
@ -171,6 +151,8 @@ services:
condition: service_healthy condition: service_healthy
redis: redis:
condition: service_healthy condition: service_healthy
volumes:
- mariadb_run:/var/run/mysqld
ports: ports:
- "18000:8000" - "18000:8000"
@ -228,7 +210,6 @@ services:
init: true init: true
environment: environment:
- AUR_CONFIG=conf/config - AUR_CONFIG=conf/config
- DB_HOST=mariadb
entrypoint: /docker/test-mysql-entrypoint.sh entrypoint: /docker/test-mysql-entrypoint.sh
command: /docker/scripts/run-pytests.sh clean command: /docker/scripts/run-pytests.sh clean
stdin_open: true stdin_open: true
@ -237,6 +218,7 @@ services:
mariadb_init: mariadb_init:
condition: service_started condition: service_started
volumes: volumes:
- mariadb_run:/var/run/mysqld
- git_data:/aurweb/aur.git - git_data:/aurweb/aur.git
- ./cache:/cache - ./cache:/cache
- ./aurweb:/aurweb/aurweb - ./aurweb:/aurweb/aurweb
@ -274,7 +256,6 @@ services:
init: true init: true
environment: environment:
- AUR_CONFIG=conf/config - AUR_CONFIG=conf/config
- DB_HOST=mariadb
entrypoint: /docker/tests-entrypoint.sh entrypoint: /docker/tests-entrypoint.sh
command: setup-sqlite.sh run-tests.sh command: setup-sqlite.sh run-tests.sh
stdin_open: true stdin_open: true
@ -283,6 +264,7 @@ services:
mariadb_init: mariadb_init:
condition: service_started condition: service_started
volumes: volumes:
- mariadb_run:/var/run/mysqld
- git_data:/aurweb/aur.git - git_data:/aurweb/aur.git
- ./cache:/cache - ./cache:/cache
- ./aurweb:/aurweb/aurweb - ./aurweb:/aurweb/aurweb

View file

@ -1,19 +1,9 @@
#!/bin/bash #!/bin/bash
set -eou pipefail set -eou pipefail
[[ -z "$DB_HOST" ]] && echo 'Error: $DB_HOST required but missing.' && exit 1
DB_NAME="aurweb"
DB_USER="aur"
DB_PASS="aur"
# Setup a config for our mysql db. # Setup a config for our mysql db.
cp -vf conf/config.dev conf/config cp -vf conf/config.dev conf/config
sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config
sed -ri "s/^(name) = .+/\1 = ${DB_NAME}/" conf/config
sed -ri "s/^(host) = .+/\1 = ${DB_HOST}/" conf/config
sed -ri "s/^(user) = .+/\1 = ${DB_USER}/" conf/config
sed -ri "s/^;?(password) = .+/\1 = ${DB_PASS}/" conf/config
sed -ri "s;^(aur_location) = .+;\1 = https://localhost:8444;" conf/config sed -ri "s;^(aur_location) = .+;\1 = https://localhost:8444;" conf/config

View file

@ -38,18 +38,9 @@ Match User aur
AcceptEnv AUR_OVERWRITE AcceptEnv AUR_OVERWRITE
EOF EOF
DB_NAME="aurweb"
DB_HOST="mariadb"
DB_USER="aur"
DB_PASS="aur"
# Setup a config for our mysql db. # Setup a config for our mysql db.
cp -vf conf/config.dev $AUR_CONFIG cp -vf conf/config.dev $AUR_CONFIG
sed -i "s;YOUR_AUR_ROOT;$(pwd);g" $AUR_CONFIG sed -i "s;YOUR_AUR_ROOT;$(pwd);g" $AUR_CONFIG
sed -ri "s/^(name) = .+/\1 = ${DB_NAME}/" $AUR_CONFIG
sed -ri "s/^(host) = .+/\1 = ${DB_HOST}/" $AUR_CONFIG
sed -ri "s/^(user) = .+/\1 = ${DB_USER}/" $AUR_CONFIG
sed -ri "s/^;?(password) = .+/\1 = ${DB_PASS}/" $AUR_CONFIG
AUR_CONFIG_DEFAULTS="${AUR_CONFIG}.defaults" AUR_CONFIG_DEFAULTS="${AUR_CONFIG}.defaults"

View file

@ -1,19 +1,9 @@
#!/bin/bash #!/bin/bash
set -eou pipefail set -eou pipefail
[[ -z "$DB_HOST" ]] && echo 'Error: $DB_HOST required but missing.' && exit 1
DB_NAME="aurweb"
DB_USER="aur"
DB_PASS="aur"
# Setup a config for our mysql db. # Setup a config for our mysql db.
cp -vf conf/config.dev conf/config cp -vf conf/config.dev conf/config
sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config
sed -ri "s/^(name) = .+/\1 = ${DB_NAME}/" conf/config
sed -ri "s/^(host) = .+/\1 = ${DB_HOST}/" conf/config
sed -ri "s/^(user) = .+/\1 = ${DB_USER}/" conf/config
sed -ri "s/^;?(password) = .+/\1 = ${DB_PASS}/" conf/config
python -m aurweb.initdb 2>/dev/null || /bin/true python -m aurweb.initdb 2>/dev/null || /bin/true

View file

@ -1,19 +1,9 @@
#!/bin/bash #!/bin/bash
set -eou pipefail set -eou pipefail
[[ -z "$DB_HOST" ]] && echo 'Error: $DB_HOST required but missing.' && exit 1
DB_NAME="aurweb"
DB_USER="aur"
DB_PASS="aur"
# Setup a config for our mysql db. # Setup a config for our mysql db.
cp -vf conf/config.dev conf/config cp -vf conf/config.dev conf/config
sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config
sed -ri "s/^(name) = .+/\1 = ${DB_NAME}/" conf/config
sed -ri "s/^(host) = .+/\1 = ${DB_HOST}/" conf/config
sed -ri "s/^(user) = .+/\1 = ${DB_USER}/" conf/config
sed -ri "s/^;?(password) = .+/\1 = ${DB_PASS}/" conf/config
sed -ri "s;^(aur_location) = .+;\1 = https://localhost:8443;" conf/config sed -ri "s;^(aur_location) = .+;\1 = https://localhost:8443;" conf/config

View file

@ -1,19 +1,12 @@
#!/bin/bash #!/bin/bash
set -eou pipefail set -eou pipefail
[[ -z "$DB_HOST" ]] && echo 'Error: $DB_HOST required but missing.' && exit 1
DB_NAME="aurweb_test" DB_NAME="aurweb_test"
DB_USER="aur"
DB_PASS="aur"
# Setup a config for our mysql db. # Setup a config for our mysql db.
cp -vf conf/config.dev conf/config cp -vf conf/config.dev conf/config
sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config sed -i "s;YOUR_AUR_ROOT;$(pwd);g" conf/config
sed -ri "s/^(name) = .+/\1 = ${DB_NAME}/" conf/config sed -ri "s/^(name) = .+/\1 = ${DB_NAME}/" conf/config
sed -ri "s/^(host) = .+/\1 = ${DB_HOST}/" conf/config
sed -ri "s/^(user) = .+/\1 = ${DB_USER}/" conf/config
sed -ri "s/^;?(password) = .+/\1 = ${DB_PASS}/" conf/config
# The port can be excluded from use if properly using # The port can be excluded from use if properly using
# volumes to share the mysql socket from the mariadb service. # volumes to share the mysql socket from the mariadb service.