Sail: среди и деплой
Как да подредите променливите на средата за Sail, екипа и CI — и как се различава от staging/production. Вижте също Sail, БД и Опашки.
Навигация: Всички инструменти · Sail · БД · Опашки · Диагностика
Съдържание
.env,.env.example, тайниFORWARD_*портове и сблъсъциAPP_URLи доверени проксита- Опционален
env_fileв Compose - CI: GitHub Actions пример
- Sail срещу dev/staging/prod
- Чеклист преди go-live
.env, .env.example, тайни
.env: локални тайни; никога commit. Копирайте от.env.exampleпри първи clone..env.example: безопасни стойности, документирайте всеки ключ (DB_*,REDIS_*,QUEUE_*,MAIL_*, Scout и т.н.). Sail:WWWUSER,WWWGROUP,FORWARD_DB_PORT, …- Екип: дали host команди (напр.
npmна Mac) се нуждаят от Laravel env; често важат само контейнерни команди. - Production: тайни през хостинг, Vault или masked CI variables — не копиран
.envв образа.
FORWARD_* портове и сблъсъци
Sail пробросва БД, Redis, Meilisearch към localhost. При няколко проекта в .env:
FORWARD_DB_PORT=3307
FORWARD_REDIS_PORT=6380
Рестартирайте Compose. Вътре в контейнерите портовете остават по подразбиране (3306, 6379).
APP_URL и доверени проксита
APP_URL=http://localhost
Използвайте реалния хост порт. Зад Traefik/nginx настройте TrustProxies и APP_URL с https.
Опционален env_file в Compose
laravel.test:
env_file:
- .env
- .env.docker.local
За лични overrides без промяна на споделен .env.
CI: GitHub Actions пример
- name: Run tests in Sail
run: |
cp .env.ci .env
docker compose up -d
docker compose exec -T laravel.test php artisan test
Нагласете имената на услугите. Кеширайте Composer/npm отделно от Docker layer cache.
Sail срещу dev/staging/prod
- Sail — ergonomics за разработка (Mailpit, пробросени портове, един възел БД).
- Споделен dev/staging — дългоживуща среда; пак не е production HA.
- Production — TLS, backups, monitoring, log aggregation, queue supervision, DB replicas, secret rotation — Sail не го замества.
Може да реизползвате образи от Sail Dockerfiles, но оркестрацията ще е различна.
Чеклист преди go-live
- [ ]
APP_ENV=production,APP_DEBUG=false, силенAPP_KEY - [ ] Реални
DB_*/REDIS_* - [ ]
QUEUE_CONNECTIONсъвпада с supervised workers - [ ]
schedule:runв cron - [ ] Live ключове за поща/плащания в secret store
- [ ]
LOG_CHANNELи retention според изискванията