選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

54 行
1.5KB

  1. #!/bin/sh
  2. set -eu
  3. cd /var/www/html
  4. if [ ! -f .env ] && [ -f .env.example ]; then
  5. cp .env.example .env
  6. fi
  7. if [ ! -f vendor/autoload.php ]; then
  8. composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
  9. fi
  10. if [ "${DB_CONNECTION:-mysql}" = "mysql" ]; then
  11. php -r '
  12. $host = getenv("DB_HOST") ?: "db";
  13. $port = getenv("DB_PORT") ?: "3306";
  14. $database = getenv("DB_DATABASE") ?: "pro-php-mvc";
  15. $username = getenv("DB_USERNAME") ?: "root";
  16. $password = getenv("DB_PASSWORD") ?: "";
  17. for ($attempt = 0; $attempt < 30; $attempt++) {
  18. try {
  19. new PDO("mysql:host={$host};port={$port};dbname={$database}", $username, $password);
  20. exit(0);
  21. } catch (Throwable $exception) {
  22. fwrite(STDERR, "Waiting for MySQL...\n");
  23. sleep(2);
  24. }
  25. }
  26. fwrite(STDERR, "MySQL did not become ready in time.\n");
  27. exit(1);
  28. ';
  29. if ! php -r '
  30. $host = getenv("DB_HOST") ?: "db";
  31. $port = getenv("DB_PORT") ?: "3306";
  32. $database = getenv("DB_DATABASE") ?: "pro-php-mvc";
  33. $username = getenv("DB_USERNAME") ?: "root";
  34. $password = getenv("DB_PASSWORD") ?: "";
  35. $pdo = new PDO("mysql:host={$host};port={$port};dbname={$database}", $username, $password);
  36. $statement = $pdo->query("SHOW TABLES LIKE '\''migrations'\''");
  37. exit($statement->fetch() ? 0 : 1);
  38. '; then
  39. php command.php migrate
  40. fi
  41. fi
  42. php-fpm -D
  43. exec nginx -g "daemon off;"

Powered by TurnKey Linux.