Diabolical solution for custom entrypoint

This commit is contained in:
3wc 2020-09-07 23:04:41 +02:00
parent 665de8b1fc
commit 212d0196e5
2 changed files with 23 additions and 17 deletions

View File

@ -37,6 +37,9 @@ services:
configs:
- source: LocalSettings_conf
target: /var/www/html/LocalSettings.php
- source: entrypoint2_conf
target: /docker-entrypoint2.sh
mode: 0555
depends_on:
- mariadb
secrets:
@ -53,7 +56,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
entrypoint: ./entrypoint.sh
entrypoint: /docker-entrypoint2.sh
volumes:
mariadb:
@ -67,10 +70,10 @@ networks:
secrets:
db_root_password:
name: ${STACK_NAME}_db_root_password_${DB_ROOT_PASSWD_VERSION}
name: ${STACK_NAME}_db_root_password_${DB_ROOT_PASSWORD_VERSION}
external: true
db_password:
name: ${STACK_NAME}_db_password_${DB_PASSWD_VERSION}
name: ${STACK_NAME}_db_password_${DB_PASSWORD_VERSION}
external: true
configs:
@ -78,3 +81,7 @@ configs:
name: ${STACK_NAME}_local_settings_${LOCAL_SETTINGS_CONF_VERSION}
file: LocalSettings.php.tmpl
template_driver: golang
entrypoint2_conf:
name: ${STACK_NAME}_entrypoint2_${ENTRYPOINT_CONF_VERSION}
file: entrypoint.sh
template_driver: golang

27
entrypoint.sh Normal file → Executable file
View File

@ -2,28 +2,27 @@
set -eu -o pipefail
run_install() {
init_db() {
set -eu
php /var/www/html/maintenance/install.php
--server ${DOMAIN}
--dbuser mediawiki
--dbpass `cat /run/secrets/db_password`
--dbserver mariadb
--confpath /var/www/html/
--dbname mediawiki
--pass `cat /run/secrets/admin_password`
--scriptpath ''
'${MEDIAWIKI_SITENAME}'
Admin
apt update && apt install -y mariadb-client
PASSWORD=`cat /run/secrets/db_password`
TABLE_COUNT=$(mysql -u mediawiki --password="$PASSWORD" -h mariadb mediawiki -e "SELECT count(*) AS TOTAL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'mediawiki';" -N -B)
if [[ "${TABLE_COUNT}" == "0" ]]; then
mysql -u mediawiki --password="$PASSWORD" -h mariadb mediawiki < /var/www/html/maintenance/tables.sql
else
php /var/www/html/maintenance/update.php
fi
}
main() {
set -eu
run_install
init_db
}
main
/docker-entrypoint "$@"
/docker-entrypoint.sh apache2-foreground "$@"