当前位置:首页 > 云服务器

Laravel怎么使用Docker环境部署_Laravel Sail安装配置与容器化管理【方案】

游戏科技网2026年09月14日 21:52云服务器10
描述:Laravel Sail 是 Laravel 9+ 默认集成的轻量级 Docker 开发方案,封装 Nginx、PHP-FPM、MySQL 等服务,自动处理依赖顺序与网络配置;需修正 docker-compose.yml 路径、.env 主机配置及时区,并在容器内执行 composer instal…
Laravel Sail 是 Laravel 9+ 默认集成的轻量级 Docker 开发方案,封装 Nginx、PHP-FPM、MySQL 等服务,自动处理依赖顺序与网络配置;需修正 docker-compose.yml 路径、.env 主机配置及时区,并在容器内执行 composer install;生产环境须导出并精简配置,不可直接使用 sail up -d。

Laravel怎么使用Docker环境部署_Laravel Sail安装配置与容器化管理【方案】

直接用 Laravel Sail 部署 Docker 环境是目前最轻量、最贴近官方推荐的方案——它不是“可选工具”,而是 Laravel 9+ 默认集成的容器化入口,不需要手写 docker-compose.yml 就能跑起完整开发栈。

为什么不用自己写 docker-compose.yml?

Sail 的核心价值是把常见组合(Nginx + PHP-FPM + MySQL + Redis + MailHog + Selenium)封装成开箱即用的 CLI 工具,避免重复配置网络、卷映射、环境变量顺序等易错点。你自己写的 docker-compose.yml 很容易在 APP_SERVICEphp-fpm 容器间出现 socket 连接超时,或因 mysql 容器启动慢导致 Laravel 迁移失败。

  • sail up 自动等待 MySQL 就绪后再启动应用服务
  • 所有服务默认使用 sail 网络,PHP 容器内访问 mysql 就是 DNS 名字,无需 127.0.0.1host.docker.internal
  • .env 中的 DB_HOST=mysqlREDIS_HOST=redis 是生效前提,不是占位符

安装 Sail 后必须改的三个地方

运行 composer require laravel/sail --dev 并执行 php artisan sail:install 后,别急着 sail up。以下三处不改,90% 的人会卡在 502 或数据库连接拒绝:

Laravel怎么使用Docker环境部署_Laravel Sail安装配置与容器化管理【方案】
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 检查 docker-compose.ymlbuild.context 是否指向项目根目录(不是 ./vendor/laravel/sail/runtimes/8.2 这类绝对路径)
  • 确认 .envDB_HOST=mysqlREDIS_HOST=redisMAIL_MAILER=smtpMAIL_HOST=mailhog
  • PHP 容器内时区必须和宿主机一致,否则日志/队列时间错乱:在 docker-compose.ymllaravel.test 服务下加 environment 块:

    1

    2

    3

    environment:

      - APP_TIMEZONE=Asia/Shanghai

      - TZ=Asia/Shanghai

sail artisan 命令总提示 Class not found?

这是最常被忽略的权限与自动加载问题:Sail 的 sail artisan 实际在 laravel.test 容器里执行,但 vendor/autoload.php 如果由宿主机(比如 Mac M1)生成,可能含不兼容的扩展或缓存。解决方式不是重装依赖,而是强制容器内生成:

  • sail down 停掉所有容器
  • 删掉宿主机上的 vendor/composer.lock
  • 运行 sail composer install —— 这一步会在 PHP 容器内执行,生成匹配容器架构的 autoloader
  • sail up -d 启动,sail artisan migrate 就不会报 Class App\Models\User not found

生产环境别用 sail up -d

Sail 是为开发设计的:它默认暴露 8000 端口、启用 Xdebug、挂载整个项目目录为 volume、日志直写 stdout。上线时这些全是风险点。真正上生产应导出配置:sail artisan sail:publish,然后手动删掉 xdebug 扩展、注释 volumes 下的源码挂载、把 APP_ENV=production 写死进 docker-compose.yml 的 environment 块,并用 Nginx 反向代理替换 Sail 自带的简易服务器。否则你看到的 “Docker 部署” 其实只是本地开发镜像直接扔到云服务器上裸跑。

“Laravel怎么使用Docker环境部署_Laravel Sail安装配置与容器化管理【方案】” 的相关文章

5元云服务器:入门级新手首选

5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得…

6元服务器租用,高性价比VPS主机推荐

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我…

2021年云服务器优惠套餐推荐

2021年云服务器优惠套餐推荐 嗨,朋友们!你是否曾经在深夜里,面对一堆代码和服务器错误,感叹说:“为什么我的项目老是卡顿?”如果是这样的话,那你可能正在寻找2021年云服务器优惠套餐的解决方案。作为…

云服务器市场增长

云服务器市场增长 大家好,作为一个每天依赖云服务器的开发者,我亲身感受到市场的飞速膨胀。想象一下,几年前我还得在办公室的老旧电脑前苦苦挣扎,处理数据时总是卡顿不堪,但现在,只需轻轻一点,就能在云端获得…

1元买走一台云服务器,这种天上掉馅饼的事存在吗?

1元买走一台云服务器,这种天上掉馅饼的事存在吗? 那天,我在咖啡馆里刷手机,偶然看到一个广告:“只需1元,就能买走一台高性能云服务器!容量无限,稳定快速,适合创业和学习。”我的心跳突然加速了。作为一个…

云服务器10元月:经济型服务价格新记录

云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚…