Фреймворки
Laravel
Деплой приложения на Laravel.
Как Railpack собирает Laravel
Laravel распознаётся по файлу artisan. Railpack:
- Ставит PHP и зависимости из
composer.json. - Если есть
package.json, собирает фронтенд (Vite) и удаляет dev-зависимости Node.js. - Запускает приложение на FrankenPHP с корнем в
public/.
При каждом запуске контейнера выполняются:
php artisan migrate --force
php artisan storage:link
php artisan optimize:clear
php artisan optimizeМиграции выполняются автоматически при каждом запуске. Чтобы отключить это, задайте
RAILPACK_SKIP_MIGRATIONS=true.
Порт
FrankenPHP слушает переменную PORT, а без неё — 80. Порт домена по умолчанию — 3000, поэтому
добавьте PORT=3000 или поменяйте порт в домене на 80.
Переменные окружения
Минимальный набор для production:
APP_KEY=base64:... # php artisan key:generate --show
APP_ENV=production
APP_DEBUG=false
APP_URL=https://example.com
PORT=3000Для подключения к PostgreSQL задайте DB_CONNECTION=pgsql и параметры базы.
Файлы и хранилище
Файловая система контейнера пересоздаётся при каждом деплое. Загрузки пользователей и другие файлы из
storage/app храните в томе или во внешнем объектном хранилище.
Версия PHP
Берётся из composer.json; по умолчанию — 8.4. Поддерживаются версии от 8.2.
Полезные переменные Railpack
| Переменная | Что делает |
|---|---|
RAILPACK_SKIP_MIGRATIONS | true — не выполнять миграции при запуске |
RAILPACK_PHP_EXTENSIONS | Дополнительные расширения PHP через запятую |
RAILPACK_PHP_ROOT_DIR | Другой корень документов вместо public/ |