11#! /usr/bin/env bash
22
3- if docker compose exec joomla test -f configuration.php; then
4- echo " Joomla! already installed!"
5- exit 0
6- fi
7-
83# shellcheck disable=1091
94[[ -f .env ]] && source .env
105
6+ echo " Checking database ..."
117for _ in $( seq 1 20) ; do
128 # shellcheck disable=2312
139 docker compose exec mysql sh -c " mysql -u${JOOMLA_DB_USER:- root} -p${JOOMLA_DB_PASSWORD:- ${MYSQL_ROOT_PASSWORD:- secret} } -e 'show databases;' 2>/dev/null" | grep -qF ' joomla' && break
1410 sleep 1
1511done
1612
17- if ! docker compose exec joomla test -f installation/joomla.php; then
18- echo " Joomla! CLI installer not found! (requires Joomla! version >= 4.3)"
19- exit 1
13+ if ! docker compose exec joomla test -f configuration.php && docker compose exec joomla test -f installation/joomla.php; then
14+ # https://docs.joomla.org/J4.x:Joomla_CLI_Installation
15+ docker compose exec --user www-data joomla php installation/joomla.php install \
16+ --site-name DEMO \
17+ --admin-user ADMIN \
18+ --admin-username " ${ADMIN_USERNAME:- admin} " \
19+ --admin-password " ${ADMIN_PASSWORD:- ChangeTheP@ ssw0rd} " \
20+ --admin-email " ${ADMIN_EMAIL:- admin@ example.com} " \
21+ --db-host " ${JOOMLA_DB_HOST:- mysql} " \
22+ --db-name " ${JOOMLA_DB_NAME:- joomla} " \
23+ --db-user " ${JOOMLA_DB_USER:- root} " \
24+ --db-pass " ${JOOMLA_DB_PASSWORD:- ${MYSQL_ROOT_PASSWORD:- secret} } " \
25+ --db-prefix " ${JOOMLA_DB_PREFIX:- vlqhe_} " \
26+ --no-interaction
2027fi
2128
22- # https://docs.joomla.org/J4.x:Joomla_CLI_Installation
23- docker compose exec --user www-data joomla php installation/joomla.php install \
24- --site-name DEMO \
25- --admin-user ADMIN \
26- --admin-username " ${ADMIN_USERNAME:- admin} " \
27- --admin-password " ${ADMIN_PASSWORD:- ChangeTheP@ ssw0rd} " \
28- --admin-email " ${ADMIN_EMAIL:- admin@ example.com} " \
29- --db-host " ${JOOMLA_DB_HOST:- mysql} " \
30- --db-name " ${JOOMLA_DB_NAME:- joomla} " \
31- --db-user " ${JOOMLA_DB_USER:- root} " \
32- --db-pass " ${JOOMLA_DB_PASSWORD:- ${MYSQL_ROOT_PASSWORD:- secret} } " \
33- --db-prefix " ${JOOMLA_DB_PREFIX:- vlqhe_} " \
34- --no-interaction
29+ echo " Bundling extension ..."
30+ docker compose exec -w /workspace joomla ./bundle.sh > /dev/null
31+
32+ # https://docs-next.joomla.org/docs/command-line-interface/using-the-cli/
33+ if docker compose exec joomla test -f /var/www/html/cli/joomla.php; then
34+
35+ if [[ " ${1:- } " == " --force" ]]; then
36+ docker compose exec joomla bash -c " php /var/www/html/cli/joomla.php extension:list | grep -iE '(external|caslogin)' | awk '{print \$ 2}' | xargs -I{} php /var/www/html/cli/joomla.php extension:remove -n {}" || true
37+ fi
38+
39+ docker compose exec joomla php /var/www/html/cli/joomla.php extension:install --path /workspace/dist/pkg_externallogin.zip
40+
41+ docker compose exec joomla php /var/www/html/cli/joomla.php cache:clean || true
42+
43+ echo " Configuring logging ..."
44+ docker compose exec joomla php /var/www/html/cli/joomla.php config:set log_path=/tmp
45+ if ! docker compose exec joomla grep -q " log_everything" /var/www/html/configuration.php; then
46+ docker compose exec joomla sed -i " s|^}$|\tpublic \$ log_everything = 1;\n}|" /var/www/html/configuration.php
47+ fi
48+
49+ fi
3550
3651echo " Fixing permissions ..."
3752docker compose exec joomla chown -R www-data:www-data /var/www/html
0 commit comments