mirror of
https://github.com/phpmyadmin/docker.git
synced 2026-08-24 10:13:22 -05:00
88 lines
2.8 KiB
Bash
Executable File
88 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
|
|
if [ "$(id -u)" = '0' ]; then
|
|
case "$1" in
|
|
apache2*)
|
|
user="${APACHE_RUN_USER:-www-data}"
|
|
group="${APACHE_RUN_GROUP:-www-data}"
|
|
;;
|
|
*) # php-fpm
|
|
user='www-data'
|
|
group='www-data'
|
|
;;
|
|
esac
|
|
else
|
|
user="$(id -u)"
|
|
group="$(id -g)"
|
|
fi
|
|
|
|
if ! [ -e index.php -a -e url.php ]; then
|
|
echo >&2 "phpMyAdmin not found in $PWD - copying now..."
|
|
if [ "$(ls -A)" ]; then
|
|
echo >&2 "WARNING: $PWD is not empty - press Ctrl+C now if this is an error!"
|
|
( set -x; ls -A; sleep 10 )
|
|
fi
|
|
tar --create \
|
|
--file - \
|
|
--one-file-system \
|
|
--directory /usr/src/phpmyadmin \
|
|
--owner "$user" --group "$group" \
|
|
. | tar --extract --file -
|
|
echo >&2 "Complete! phpMyAdmin has been successfully copied to $PWD"
|
|
mkdir -p tmp; \
|
|
chmod -R 777 tmp; \
|
|
fi
|
|
|
|
if [ ! -f /etc/phpmyadmin/config.secret.inc.php ]; then
|
|
cat > /etc/phpmyadmin/config.secret.inc.php <<EOT
|
|
<?php
|
|
\$cfg['blowfish_secret'] = '$(tr -dc 'a-zA-Z0-9~!@#$%^&*_()+}{?></";.,[]=-' < /dev/urandom | fold -w 32 | head -n 1)';
|
|
EOT
|
|
fi
|
|
|
|
if [ ! -f /etc/phpmyadmin/config.user.inc.php ]; then
|
|
touch /etc/phpmyadmin/config.user.inc.php
|
|
fi
|
|
fi
|
|
|
|
if [ ! -z "${HIDE_PHP_VERSION}" ]; then
|
|
echo "PHP version is now hidden."
|
|
echo -e 'expose_php = Off\n' > $PHP_INI_DIR/conf.d/phpmyadmin-hide-php-version.ini
|
|
fi
|
|
|
|
UPLOAD_LIMIT_INI_FILE="$PHP_INI_DIR/conf.d/phpmyadmin-upload-limit.ini"
|
|
if [ ! -z "${UPLOAD_LIMIT}" ]; then
|
|
echo "Adding the custom upload limit."
|
|
echo -e "upload_max_filesize = $UPLOAD_LIMIT\npost_max_size = $UPLOAD_LIMIT\n" > $UPLOAD_LIMIT_INI_FILE
|
|
fi
|
|
|
|
if [ ! -z "${PMA_CONFIG_BASE64}" ]; then
|
|
echo "Adding the custom config.inc.php from base64."
|
|
echo "${PMA_CONFIG_BASE64}" | base64 -d > /etc/phpmyadmin/config.inc.php
|
|
fi
|
|
|
|
if [ ! -z "${PMA_USER_CONFIG_BASE64}" ]; then
|
|
echo "Adding the custom config.user.inc.php from base64."
|
|
echo "${PMA_USER_CONFIG_BASE64}" | base64 -d > /etc/phpmyadmin/config.user.inc.php
|
|
fi
|
|
|
|
function get_docker_secret() {
|
|
local env_var="${1}"
|
|
local env_var_file="${env_var}_FILE"
|
|
|
|
# Check if the variable with name $env_var_file (which is $PMA_PASSWORD_FILE for example)
|
|
# is not empty and export $PMA_PASSWORD as the password in the Docker secrets file
|
|
|
|
if [[ -n "${!env_var_file}" ]]; then
|
|
export "${env_var}"="$(cat "${!env_var_file}")"
|
|
fi
|
|
}
|
|
|
|
get_docker_secret PMA_PASSWORD
|
|
get_docker_secret MYSQL_ROOT_PASSWORD
|
|
get_docker_secret MYSQL_PASSWORD
|
|
get_docker_secret PMA_HOSTS
|
|
get_docker_secret PMA_HOST
|
|
|
|
exec "$@"
|