#!/bin/sh
set -eu
cd /var/www/html
if [ ! -f .env ] && [ -f .env.example ]; then
cp .env.example .env
fi
if [ ! -f vendor/autoload.php ]; then
composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
fi
if [ "${DB_CONNECTION:-mysql}" = "mysql" ]; then
php -r '
$host = getenv("DB_HOST") ?: "db";
$port = getenv("DB_PORT") ?: "3306";
$database = getenv("DB_DATABASE") ?: "pro-php-mvc";
$username = getenv("DB_USERNAME") ?: "root";
$password = getenv("DB_PASSWORD") ?: "";
for ($attempt = 0; $attempt < 30; $attempt++) {
try {
new PDO("mysql:host={$host};port={$port};dbname={$database}", $username, $password);
exit(0);
} catch (Throwable $exception) {
fwrite(STDERR, "Waiting for MySQL...\n");
sleep(2);
}
}
fwrite(STDERR, "MySQL did not become ready in time.\n");
exit(1);
';
if ! php -r '
$host = getenv("DB_HOST") ?: "db";
$port = getenv("DB_PORT") ?: "3306";
$database = getenv("DB_DATABASE") ?: "pro-php-mvc";
$username = getenv("DB_USERNAME") ?: "root";
$password = getenv("DB_PASSWORD") ?: "";
$pdo = new PDO("mysql:host={$host};port={$port};dbname={$database}", $username, $password);
$statement = $pdo->query("SHOW TABLES LIKE '\''migrations'\''");
exit($statement->fetch() ? 0 : 1);
'; then
php command.php migrate
fi
fi
php-fpm -D
exec nginx -g "daemon off;"