Laravel如何与Docker(Sail)协同开发?(环境搭建教程)

3次阅读

laravel Sail 是 Laravel 官方 封装 docker Compose 工具,一键初始化、统一命令(如 sail up、sail artisan)、支持服务选配与配置微调,简化本地开发环境搭建与管理。

Laravel 如何与 Docker(Sail)协同开发?(环境搭建教程)

用 Laravel Sail 搭建本地开发环境非常简单,它本质是 Laravel 官方封装的一套 Docker Compose 脚本,帮你省去手动写 docker-compose.yml 和配置 nginx/php/mysql 的麻烦。

一键初始化 Sail 环境

新项目直接用 Laravel 安装器创建时带上 –dev 参数,会自动包含 Sail:

laravel new my-app –dev

已有项目则运行:

cd my-app && php artisan sail:install

执行后会生成 docker-compose.yml.env.example 中的 Sail 相关配置(如 DB_HOST=sail),并提示你选择需要的服务(MySQL、postgresqlredis、Meilisearch 等)。

启动与日常开发命令

Sail 提供了统一的 ./vendor/bin/sail 命令代理,所有操作都不需单独记 Docker 命令:

  • ./vendor/bin/sail up -d —— 后台启动容器
  • ./vendor/bin/sail artisan migrate —— 在 PHP 容器中运行 Artisan 命令
  • ./vendor/bin/sail php –version —— 进入 PHP 环境执行任意命令
  • ./vendor/bin/sail logs -f nginx —— 实时查看 Nginx 日志
  • ./vendor/bin/sail down —— 关闭全部服务

常见配置调整技巧

Sail 默认使用轻量级配置,适合开发。遇到实际需求可微调:

  • 修改端口:编辑 docker-compose.yml 中 nginx 的 ports,比如把 80:80 改成 8080:80,然后 sail down && sail up -d
  • 挂载自定义配置:比如想改 PHP 的 upload_max_filesize,在 docker-compose.ymlphp 服务里加 volumes:./php.ini:/usr/local/etc/php/conf.d/php.ini
  • 添加 node.js 支持:Sail 默认不启 Node 容器,但你可以用 sail node -vsail npm run dev —— Sail 会自动在 PHP 容器里执行(PHP 镜像已预装 Node)

调试与问题排查要点

刚上手容易卡在几个地方:

  • 权限问题linux/macos 下如果报 permission denied,检查 ./vendor/bin/sail 是否有执行权限:chmod +x ./vendor/bin/sail
  • 数据库 连不上:确认 .envDB_HOST=sail(不是 localhost),且已运行 sail up -d 启动 MySQL
  • 前端 资源不刷新vite / Mix 编译后默认输出到 public/build,确保 APP_URL=http://localhost 与访问地址一致,必要时清浏览器缓存或加版本参数
  • 文件变更监听失效:Docker Desktop for Mac/windows 默认支持 inotify,Linux 用户需确认宿主机已启用 fs.inotify.max_user_watches=524288

基本上就这些。Sail 不是黑盒,它生成的 docker-compose.yml 完全可读可改;也不用怕 Docker,大多数时候你只和 sail 这个命令打交道。开发体验接近原生,又隔离了环境依赖。

以上就是 Laravel 如何与 Docker(Sail)协同开发?(环境搭建教程)的详细内容,更多请关注 php 中文网其它相关文章!

站长
版权声明:本站原创文章,由 站长 2025-12-23发表,共计1505字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources