Diabolical solution for custom entrypoint
This commit is contained in:
parent
665de8b1fc
commit
212d0196e5
13
compose.yml
13
compose.yml
|
@ -37,6 +37,9 @@ services:
|
||||||
configs:
|
configs:
|
||||||
- source: LocalSettings_conf
|
- source: LocalSettings_conf
|
||||||
target: /var/www/html/LocalSettings.php
|
target: /var/www/html/LocalSettings.php
|
||||||
|
- source: entrypoint2_conf
|
||||||
|
target: /docker-entrypoint2.sh
|
||||||
|
mode: 0555
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb
|
- mariadb
|
||||||
secrets:
|
secrets:
|
||||||
|
@ -53,7 +56,7 @@ services:
|
||||||
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
||||||
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||||
entrypoint: ./entrypoint.sh
|
entrypoint: /docker-entrypoint2.sh
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mariadb:
|
mariadb:
|
||||||
|
@ -67,10 +70,10 @@ networks:
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
db_root_password:
|
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
|
external: true
|
||||||
db_password:
|
db_password:
|
||||||
name: ${STACK_NAME}_db_password_${DB_PASSWD_VERSION}
|
name: ${STACK_NAME}_db_password_${DB_PASSWORD_VERSION}
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
configs:
|
configs:
|
||||||
|
@ -78,3 +81,7 @@ configs:
|
||||||
name: ${STACK_NAME}_local_settings_${LOCAL_SETTINGS_CONF_VERSION}
|
name: ${STACK_NAME}_local_settings_${LOCAL_SETTINGS_CONF_VERSION}
|
||||||
file: LocalSettings.php.tmpl
|
file: LocalSettings.php.tmpl
|
||||||
template_driver: golang
|
template_driver: golang
|
||||||
|
entrypoint2_conf:
|
||||||
|
name: ${STACK_NAME}_entrypoint2_${ENTRYPOINT_CONF_VERSION}
|
||||||
|
file: entrypoint.sh
|
||||||
|
template_driver: golang
|
||||||
|
|
|
@ -2,28 +2,27 @@
|
||||||
|
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
|
|
||||||
run_install() {
|
init_db() {
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
php /var/www/html/maintenance/install.php
|
apt update && apt install -y mariadb-client
|
||||||
--server ${DOMAIN}
|
|
||||||
--dbuser mediawiki
|
PASSWORD=`cat /run/secrets/db_password`
|
||||||
--dbpass `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)
|
||||||
--dbserver mariadb
|
|
||||||
--confpath /var/www/html/
|
if [[ "${TABLE_COUNT}" == "0" ]]; then
|
||||||
--dbname mediawiki
|
mysql -u mediawiki --password="$PASSWORD" -h mariadb mediawiki < /var/www/html/maintenance/tables.sql
|
||||||
--pass `cat /run/secrets/admin_password`
|
else
|
||||||
--scriptpath ''
|
php /var/www/html/maintenance/update.php
|
||||||
'${MEDIAWIKI_SITENAME}'
|
fi
|
||||||
Admin
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
run_install
|
init_db
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
|
|
||||||
/docker-entrypoint "$@"
|
/docker-entrypoint.sh apache2-foreground "$@"
|
||||||
|
|
Reference in New Issue