Sail: среди и деплой

Как да подредите променливите на средата за Sail, екипа и CI — и как се различава от staging/production. Вижте също Sail, БД и Опашки.

Навигация: Всички инструменти · Sail · БД · Опашки · Диагностика

Съдържание


.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 според изискванията

Вижте също

← Всички инструменти