
Laravel Sail 的 sail up 命令启动后会保持前台运行并实时输出容器日志,这并非错误,而是 Docker Compose 默认的「attached 模式」行为;服务已就绪,可直接访问 http://localhost。
laravel sail 的 `sail up` 命令启动后会保持前台运行并实时输出容器日志,这并非错误,而是 docker compose 默认的「attached 模式」行为;服务已就绪,可直接访问 http://localhost。
当你执行 ./vendor/bin/sail up 时,Sail 实际调用的是 docker-compose up(不带 -d 参数),这意味着它会以前台交互模式启动所有服务,并持续将各容器(如 Meilisearch、MailHog、Nginx、PHP)的标准输出(stdout/stderr)实时打印到终端——你看到的重复健康检查日志(如 /health 返回 200、/api/v1/events 保活)恰恰说明服务已成功启动并正常心跳:
projectname-meilisearch-1 | [2022-05-04T18:01:14Z INFO actix_web::middleware::logger] 127.0.0.1 "GET /health HTTP/1.1" 200 22 "-" "Wget" 0.000140 projectname-mailhog-1 | [APIv1] KEEPALIVE /api/v1/events
✅ 这是预期行为,表明:
- Meilisearch 已就绪,健康检查通过;
- MailHog 正在监听事件流,邮件捕获功能可用;
- Laravel 应用(通过 Nginx + PHP-FPM)也已启动,可立即访问 http://localhost。
⚠️ 注意事项:
- 若需后台运行(避免占用终端),请改用 ./vendor/bin/sail up -d(-d 表示 detached 模式);
- 日志滚动不影响功能,如需查看特定服务日志,可单独执行:
./vendor/bin/sail logs nginx 或 ./vendor/bin/sail logs php-fpm; - 若页面无法访问,请先确认 docker ps 中 nginx 和 php-fpm 容器状态为 Up,再检查 http://localhost 是否被本地其他服务(如 MAMP、XAMPP)占用。
? 小结:Sail 的 up 不是“卡住”,而是“正在工作”。日志即证据,服务已活——打开浏览器,输入 http://localhost,你的 Laravel 应用已在容器中稳健运行。











