File size: 3,064 Bytes
d9f0d1f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b89ba2
d9f0d1f
 
9b89ba2
d9f0d1f
9b89ba2
d9f0d1f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env bash
set -Eeuo pipefail

: "${MARIADB_ROOT_PASSWORD:?MARIADB_ROOT_PASSWORD is required}"
: "${WORDPRESS_DB_NAME:?WORDPRESS_DB_NAME is required}"
: "${WORDPRESS_DB_USER:?WORDPRESS_DB_USER is required}"
: "${WORDPRESS_DB_PASSWORD:?WORDPRESS_DB_PASSWORD is required}"

mkdir -p /run/mysqld /var/lib/mysql
chown -R mysql:mysql /run/mysqld /var/lib/mysql

if [ ! -d /var/lib/mysql/mysql ]; then
  mariadb-install-db --user=mysql --datadir=/var/lib/mysql >/dev/null
fi

mariadbd --user=mysql --bind-address=127.0.0.1 --skip-name-resolve &
DB_PID=$!
cleanup() { kill "$DB_PID" 2>/dev/null || true; }
trap cleanup EXIT

for _ in $(seq 1 60); do
  mariadb-admin ping --silent >/dev/null 2>&1 && break
  sleep 1
done
mariadb-admin ping --silent >/dev/null 2>&1 || { echo 'MariaDB failed to start' >&2; exit 1; }

mariadb -uroot <<SQL
CREATE DATABASE IF NOT EXISTS \`${WORDPRESS_DB_NAME}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS '${WORDPRESS_DB_USER}'@'127.0.0.1' IDENTIFIED BY '${WORDPRESS_DB_PASSWORD}';
ALTER USER '${WORDPRESS_DB_USER}'@'127.0.0.1' IDENTIFIED BY '${WORDPRESS_DB_PASSWORD}';
GRANT ALL PRIVILEGES ON \`${WORDPRESS_DB_NAME}\`.* TO '${WORDPRESS_DB_USER}'@'127.0.0.1';
FLUSH PRIVILEGES;
SQL

cat > /var/www/html/wp-config-extra.php <<'PHP'
<?php
if (getenv('WP_ENVIRONMENT_TYPE')) {
    define('WP_ENVIRONMENT_TYPE', getenv('WP_ENVIRONMENT_TYPE'));
}
define('WP_DEBUG', filter_var(getenv('WORDPRESS_DEBUG') ?: '0', FILTER_VALIDATE_BOOLEAN));
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
PHP

# The official image generates wp-config.php from the standard environment variables.
export WORDPRESS_DB_HOST=127.0.0.1
export WORDPRESS_DB_NAME="$WORDPRESS_DB_NAME"
export WORDPRESS_DB_USER="$WORDPRESS_DB_USER"
export WORDPRESS_DB_PASSWORD="$WORDPRESS_DB_PASSWORD"

apache2-foreground &
APACHE_PID=$!
for _ in $(seq 1 90); do
  if wp core is-installed --path=/var/www/html --allow-root >/dev/null 2>&1; then break; fi
  if [ ! -f /var/www/html/wp-config.php ]; then
    wp core download --path=/var/www/html --force --allow-root >/dev/null 2>&1 || true
    wp config create --path=/var/www/html --dbname="$WORDPRESS_DB_NAME" --dbuser="$WORDPRESS_DB_USER" --dbpass="$WORDPRESS_DB_PASSWORD" --dbhost=127.0.0.1 --skip-check --force --allow-root >/dev/null 2>&1 || true
  fi
  wp core install --path=/var/www/html --url="${SPACE_HOST:-http://localhost:7860}" --title='Bema Learn API' --admin_user="${WP_ADMIN_USER:-admin}" --admin_password="${WP_ADMIN_PASSWORD:-change-me-admin}" --admin_email="${WP_ADMIN_EMAIL:-admin@example.test}" --skip-email --allow-root >/dev/null 2>&1 || true
  sleep 2
done
wp core is-installed --path=/var/www/html --allow-root >/dev/null 2>&1 || { echo 'WordPress failed to initialize' >&2; exit 1; }
wp plugin activate bemalearn --path=/var/www/html --allow-root >/dev/null
wp rewrite structure '/%postname%/' --path=/var/www/html --allow-root >/dev/null 2>&1 || true
wp rewrite flush --hard --path=/var/www/html --allow-root >/dev/null 2>&1 || true

wait "$APACHE_PID"