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 |