c3572682ad
Run Tests / test (pull_request) Successful in 30s
- 所有 task 驗證完成(7.1 stderr log / 7.2 無新增日誌檔 / 7.3 session 走 Redis) - 同步 env-cloud-annotations 主 spec(LOG_CHANNEL 取代 LOG_STACK + 新增 scenario) - 新增 scheduler-container 主 spec(獨立 container 取代 cron daemon) - 移至 archive/2026-06-18-cloud-ready-p1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
ADDED Requirements
Requirement: Scheduler 以獨立 container 執行
docker-compose.yml SHALL 定義 scheduler service,使用 cfdive-platform image,以 php artisan schedule:work 前台輪詢方式執行 Laravel Scheduler,取代原本在 app container 內的 cron daemon。
Scenario: Scheduler container 隨 app 啟動
- WHEN 執行
docker compose up -d且appcontainer 已 healthy - THEN
schedulercontainer 啟動並持續執行php artisan schedule:work
Scenario: App container 重啟時 scheduler 等待就緒
- WHEN
appcontainer 重啟中(unhealthy) - THEN
schedulercontainer 依depends_on等待apphealthy 後才啟動,避免 scheduler 在 PHP-FPM 未就緒時執行任務
Requirement: App container 不再包含 cron daemon
Dockerfile SHALL 不安裝 cron 套件,docker-entrypoint.sh SHALL 不執行 service cron start,確保 app container 職責單一(只跑 PHP-FPM)。
Scenario: App container 啟動不啟動 cron
- WHEN
appcontainer 啟動並執行 entrypoint - THEN 不存在 cron daemon 程序,
pgrep cron回傳 exit code 1