wp/docker-entrypoint.sh
changeset 1 79bc439970cd
parent 0 800e4a6ab128
child 3 d7dec707cbee
equal deleted inserted replaced
0:800e4a6ab128 1:79bc439970cd
    24 }
    24 }
    25 
    25 
    26 generate_rnd() {
    26 generate_rnd() {
    27 	head /dev/urandom | tr -dc A-Za-z0-9 | head -c 64
    27 	head /dev/urandom | tr -dc A-Za-z0-9 | head -c 64
    28 }
    28 }
       
    29 
       
    30 # allow any of these "Authentication Unique Keys and Salts." to be specified via
       
    31 # environment variables with a "WORDPRESS_" prefix (ie, "WORDPRESS_AUTH_KEY")
       
    32 uniqueEnvs=(
       
    33 	AUTH_KEY
       
    34 	SECURE_AUTH_KEY
       
    35 	LOGGED_IN_KEY
       
    36 	NONCE_KEY
       
    37 	AUTH_SALT
       
    38 	SECURE_AUTH_SALT
       
    39 	LOGGED_IN_SALT
       
    40 	NONCE_SALT
       
    41 )
       
    42 envs=(
       
    43 	WORDPRESS_DB_HOST
       
    44 	WORDPRESS_DB_USER
       
    45 	WORDPRESS_DB_PASSWORD
       
    46 	WORDPRESS_DB_NAME
       
    47 	WORDPRESS_DB_CHARSET
       
    48 	WORDPRESS_DB_COLLATE
       
    49 	"${uniqueEnvs[@]/#/WORDPRESS_}"
       
    50 	WORDPRESS_TABLE_PREFIX
       
    51 	WORDPRESS_DEBUG
       
    52 	WORDPRESS_CONFIG_EXTRA
       
    53 )
       
    54 haveConfig=
       
    55 for e in "${envs[@]}"; do
       
    56 	file_env "$e"
       
    57 	if [ -z "$haveConfig" ] && [ -n "${!e}" ]; then
       
    58 		haveConfig=1
       
    59 	fi
       
    60 done
       
    61 
       
    62 # linking backwards-compatibility
       
    63 if [ -n "${!MYSQL_ENV_MYSQL_*}" ]; then
       
    64 	haveConfig=1
       
    65 	# host defaults to "mysql" below if unspecified
       
    66 	: "${WORDPRESS_DB_USER:=${MYSQL_ENV_MYSQL_USER:-root}}"
       
    67 	if [ "$WORDPRESS_DB_USER" = 'root' ]; then
       
    68 		: "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_ROOT_PASSWORD:-}}"
       
    69 	else
       
    70 		: "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_PASSWORD:-}}"
       
    71 	fi
       
    72 	: "${WORDPRESS_DB_NAME:=${MYSQL_ENV_MYSQL_DATABASE:-}}"
       
    73 fi
       
    74 
       
    75 # linking backwards-compatibility
       
    76 if [ -n "${!MYSQL_ENV_MYSQL_*}" ]; then
       
    77 	haveConfig=1
       
    78 	# host defaults to "mysql" below if unspecified
       
    79 	: "${WORDPRESS_DB_USER:=${MYSQL_ENV_MYSQL_USER:-root}}"
       
    80 	if [ "$WORDPRESS_DB_USER" = 'root' ]; then
       
    81 		: "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_ROOT_PASSWORD:-}}"
       
    82 	else
       
    83 		: "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_PASSWORD:-}}"
       
    84 	fi
       
    85 	: "${WORDPRESS_DB_NAME:=${MYSQL_ENV_MYSQL_DATABASE:-}}"
       
    86 fi
       
    87 
       
    88 : "${WORDPRESS_DB_HOST:=mysql}"
       
    89 : "${WORDPRESS_DB_USER:=root}"
       
    90 : "${WORDPRESS_DB_PASSWORD:=}"
       
    91 : "${WORDPRESS_DB_NAME:=wordpress}"
       
    92 : "${WORDPRESS_DB_CHARSET:=utf8}"
       
    93 : "${WORDPRESS_DB_COLLATE:=}"
       
    94 
       
    95 # Wait 
       
    96 
       
    97 until mysql -h ${WORDPRESS_DB_HOST} -u ${WORDPRESS_DB_USER} -p${WORDPRESS_DB_PASSWORD} -e"quit" ${WORDPRESS_DB_NAME}; do
       
    98   >&2 echo "Mysql is unavailable - sleeping"
       
    99   sleep 1
       
   100 done
       
   101 
       
   102 >&2 echo "Mysql is up - proceeding"
    29 
   103 
    30 if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
   104 if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
    31 	if [ "$(id -u)" = '0' ]; then
   105 	if [ "$(id -u)" = '0' ]; then
    32 		case "$1" in
   106 		case "$1" in
    33 			apache2*)
   107 			apache2*)
    47 	else
   121 	else
    48 		user="$(id -u)"
   122 		user="$(id -u)"
    49 		group="$(id -g)"
   123 		group="$(id -g)"
    50 	fi
   124 	fi
    51 
   125 
    52 	# allow any of these "Authentication Unique Keys and Salts." to be specified via
       
    53 	# environment variables with a "WORDPRESS_" prefix (ie, "WORDPRESS_AUTH_KEY")
       
    54 	uniqueEnvs=(
       
    55 		AUTH_KEY
       
    56 		SECURE_AUTH_KEY
       
    57 		LOGGED_IN_KEY
       
    58 		NONCE_KEY
       
    59 		AUTH_SALT
       
    60 		SECURE_AUTH_SALT
       
    61 		LOGGED_IN_SALT
       
    62 		NONCE_SALT
       
    63 	)
       
    64 	envs=(
       
    65 		WORDPRESS_DB_HOST
       
    66 		WORDPRESS_DB_USER
       
    67 		WORDPRESS_DB_PASSWORD
       
    68 		WORDPRESS_DB_NAME
       
    69 		WORDPRESS_DB_CHARSET
       
    70 		WORDPRESS_DB_COLLATE
       
    71 		"${uniqueEnvs[@]/#/WORDPRESS_}"
       
    72 		WORDPRESS_TABLE_PREFIX
       
    73 		WORDPRESS_DEBUG
       
    74 		WORDPRESS_CONFIG_EXTRA
       
    75 	)
       
    76 	haveConfig=
       
    77 	for e in "${envs[@]}"; do
       
    78 		file_env "$e"
       
    79 		if [ -z "$haveConfig" ] && [ -n "${!e}" ]; then
       
    80 			haveConfig=1
       
    81 		fi
       
    82 	done
       
    83 
       
    84 	# linking backwards-compatibility
       
    85 	if [ -n "${!MYSQL_ENV_MYSQL_*}" ]; then
       
    86 		haveConfig=1
       
    87 		# host defaults to "mysql" below if unspecified
       
    88 		: "${WORDPRESS_DB_USER:=${MYSQL_ENV_MYSQL_USER:-root}}"
       
    89 		if [ "$WORDPRESS_DB_USER" = 'root' ]; then
       
    90 			: "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_ROOT_PASSWORD:-}}"
       
    91 		else
       
    92 			: "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_PASSWORD:-}}"
       
    93 		fi
       
    94 		: "${WORDPRESS_DB_NAME:=${MYSQL_ENV_MYSQL_DATABASE:-}}"
       
    95 	fi
       
    96 
       
    97 	# TODO : create .env file if needed
   126 	# TODO : create .env file if needed
    98 	if [ ! -e .env ] && [ "$haveConfig" ]; then
   127 	if [ ! -e .env ] && [ "$haveConfig" ]; then
    99 		: "${WORDPRESS_DB_HOST:=mysql}"
       
   100 		: "${WORDPRESS_DB_USER:=root}"
       
   101 		: "${WORDPRESS_DB_PASSWORD:=}"
       
   102 		: "${WORDPRESS_DB_NAME:=wordpress}"
       
   103 		: "${WORDPRESS_DB_CHARSET:=utf8}"
       
   104 		: "${WORDPRESS_DB_COLLATE:=}"
       
   105 		cat > .env <<-EOF
   128 		cat > .env <<-EOF
   106 				DB_NAME=${WORDPRESS_DB_NAME}
   129 				DB_NAME=${WORDPRESS_DB_NAME}
   107 				DB_USER=${WORDPRESS_DB_USER}
   130 				DB_USER=${WORDPRESS_DB_USER}
   108 				DB_PASSWORD=${WORDPRESS_DB_PASSWORD}
   131 				DB_PASSWORD=${WORDPRESS_DB_PASSWORD}
   109 				DB_HOST=db:3306
   132 				DB_HOST=db:3306