bisnow/laravel本Docker镜像为Laravel应用提供一体化部署解决方案,在单个容器内集成运行web服务、worker进程(队列任务处理)和scheduler定时任务功能,旨在简化传统部署中多容器或多进程管理的复杂性,降低应用架构复杂度。
bashdocker pull [镜像仓库地址]/laravel-single-container:latest
注:请替换
[镜像仓库地址]为实际镜像存放地址
3.1 快速启动(开发环境)
bashdocker run -d \ --name laravel-app \ -p 80:80 \ -v /path/to/laravel-project:/app \ -e APP_ENV=local \ -e APP_KEY=base64:your_app_key_here \ -e DB_CONNECTION=mysql \ -e DB_HOST=mysql \ -e DB_PORT=3306 \ -e DB_DATABASE=laravel \ -e DB_USERNAME=root \ -e DB_PASSWORD=secret \ laravel-single-container:latest
3.2 docker-compose配置(生产环境建议)
yamlversion: '3.8' services: laravel: image: laravel-single-container:latest container_name: laravel-app restart: always ports: - "8080:80" volumes: - ./laravel-project:/app - ./storage:/app/storage # 持久化存储目录 - ./bootstrap/cache:/app/bootstrap/cache # 持久化缓存目录 environment: - APP_ENV=production - APP_KEY=base64:your_production_app_key - APP_URL=[***] - DB_CONNECTION=mysql - DB_HOST=mysql-service # 外部数据库服务名/IP - DB_PORT=3306 - DB_DATABASE=laravel_prod - DB_USERNAME=laravel_user - DB_PASSWORD=strong_password - QUEUE_CONNECTION=redis # 队列驱动(支持sync/redis/database等) - WORKER_PROCESSES=4 # worker进程数量(默认1) - SCHEDULER_INTERVAL=* * * * * # 定时任务调度频率(默认每分钟) depends_on: - mysql-service # 如需依赖外部服务(如数据库),需在此声明
| 环境变量 | 描述 | 默认值 |
|---|---|---|
APP_ENV | 应用环境(local/production等) | local |
APP_KEY | Laravel应用密钥(必须配置,通过php artisan key:generate生成) | - |
QUEUE_CONNECTION | 队列驱动类型 | sync |
WORKER_PROCESSES | 启动的worker进程数量 | 1 |
SCHEDULER_INTERVAL | scheduler定时任务执行频率(crontab格式) | * * * * *(每分钟) |
WEB_SERVER_PORT | 容器内web服务监听端口 | 80 |
PHP_MAX_EXECUTION_TIME | PHP最大执行时间(秒) | 60 |
5.1 自定义启动脚本
如需修改进程启动逻辑(如添加前置命令、调整进程启动顺序),可通过卷挂载自定义启动脚本:
bashdocker run -v /path/to/custom-entrypoint.sh:/app/entrypoint.sh \ --entrypoint /app/entrypoint.sh \ laravel-single-container:latest
5.2 健康检查配置
在docker-compose中添加健康检查确保服务可用:
yamlservices: laravel: # ... 其他配置 ... healthcheck: test: ["CMD", "curl", "-f", "http://localhost/health"] # 需确保应用提供健康检查接口 interval: 30s timeout: 10s retries: 3
WORKER_PROCESSES参数(通常设置为CPU核心数的1-2倍)--cpus/--memory参数),避免资源竞争storage和bootstrap/cache目录,防止容器重启后数据丢失

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务