You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确部署基于Laravel Sail的Docker化生产环境应用

Laravel Sail应用生产环境部署指引

先澄清:生产环境完全可以用Docker

所谓“生产环境不能用Docker”的说法早已过时,当前Docker/K8s是主流生产部署方案之一,大量大型应用依靠容器化实现环境一致性、快速扩容、简化运维等核心优势。你的Docker化应用完全可以直接部署到生产环境,无需推翻现有架构。

基于Docker的生产部署步骤

1. 优化Sail的Docker配置

Sail默认配置面向开发环境,生产环境需针对性调整:

  • 复制docker-compose.yml并重命名为docker-compose.prod.yml,移除开发专属服务(如xdebug、mailhog,以及数据库/缓存的本地目录映射)
  • 调整PHP、Nginx镜像为生产版本,启用opcache,关闭调试相关配置
  • 更新环境变量:设置APP_ENV=production、APP_DEBUG=false,替换数据库、缓存等服务的生产环境连接信息

2. 构建生产镜像

在本地或CI/CD环境完成生产镜像构建:

# 安装生产依赖(排除开发依赖)
composer install --no-dev --optimize-autoloader
# 编译前端资源
npm install && npm run build
# 构建生产镜像(若使用自定义Dockerfile)
docker build -t your-app-image:prod .

3. 部署到生产服务器

  • 将构建好的镜像推送到私有镜像仓库(如Docker Hub私有库、云服务商镜像仓库),或直接将镜像文件传输至生产服务器
  • 在生产服务器上安装Docker与Docker Compose
  • 上传docker-compose.prod.yml和.env.production文件,启动容器:
docker-compose -f docker-compose.prod.yml up -d
  • 执行生产环境必备初始化命令:
docker-compose -f docker-compose.prod.yml exec php php artisan config:cache
docker-compose -f docker-compose.prod.yml exec php php artisan route:cache
docker-compose -f docker-compose.prod.yml exec php php artisan migrate --force

4. 配置反向代理与SSL

  • 使用Nginx或Traefik搭建反向代理,将外部请求转发至容器内的Nginx服务
  • 配置SSL证书(如通过Let's Encrypt获取免费证书),确保应用支持HTTPS访问

非Docker的替代部署方案

若坚持不使用Docker,可将Sail环境内的代码直接部署到传统服务器:

  • 在生产服务器上安装对应版本的PHP、Nginx、MySQL/Redis等依赖服务
  • 将代码上传至服务器,安装生产依赖:composer install --no-dev --optimize-autoloader
  • 编译前端资源:npm install && npm run build
  • 配置Nginx站点,将根目录指向Laravel的public文件夹
  • 设置生产环境变量,执行缓存、迁移等命令,重启PHP-FPM与Nginx服务

内容的提问来源于stack exchange,提问作者Yuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:50:57