|
- #!/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;"
|