laravel

Laravel Docker 镜像

生产就绪的PHP/Laravel Docker镜像,具备自动Laravel安装功能,支持通过环境变量配置PHP和PHP-FPM,无需重建镜像即可调整设置,包含最新Composer,提供Debian和Alpine版本,方便快速启动项目。

28 次收藏下载次数: 0状态:社区镜像维护者:shinsenter仓库类型:镜像最近更新:
下载命令
点击查看

shinsenter/laravel 镜像文档

概述

生产就绪的PHP/Laravel Docker镜像,具备自动Laravel安装功能。支持通过环境变量轻松配置PHP和PHP-FPM设置,无需重建镜像即可调整配置。包含最新版本的Composer,方便快速启动项目。提供Debian和Alpine两种版本。

  • Docker Hub: https://hub.docker.com/r/shinsenter/laravel
  • GitHub Packages: https://code.shin.company/php/pkgs/container/laravel
  • 还可查看 https://hub.docker.com/u/shinsenter。

核心功能与特性

  • 自动Laravel安装:挂载空目录到容器时,自动下载框架源代码,快速初始化新项目
  • 环境变量配置:通过环境变量配置PHP和PHP-FPM,无需修改Dockerfile或重建镜像
  • 内置Composer:包含最新Composer,方便项目依赖管理和安装
  • 多版本支持:提供Debian和Alpine两种基础镜像版本,满足不同需求
  • HTTPS支持:内置SSL测试证书,支持替换为自定义证书以实现生产环境HTTPS
  • 服务控制:通过环境变量启用Laravel队列worker、调度器、Horizon等服务

使用场景

  • 快速创建新的Laravel项目,自动完成框架代码初始化
  • 部署现有Laravel项目到生产环境,简化配置流程
  • 需要灵活调整PHP配置的场景,避免频繁重建镜像
  • 生产环境中需要HTTPS加密的部署场景
  • 需要控制Laravel服务(如队列处理、定时任务)的应用场景

使用方法

创建新项目

当将空目录挂载到容器时,容器会自动下载Laravel框架源代码,快速引导新项目。

操作步骤

  1. 在主机创建空目录用于存放项目代码:
shell
mkdir laravel
  1. 运行容器并将空目录挂载为卷:
shell
docker run -p 80:80 -p 443:443 -p 443:443/udp \
    -v ./laravel:/var/www/html \
    docker.xuanyuan.run/shinsenter/laravel:latest

容器会检测到挂载到/var/www/html的空目录,并自动克隆Laravel框架源代码到该目录。

使用现有项目

将主机上的现有Laravel项目目录挂载到容器的/var/www/html目录即可。由于源代码以卷的形式挂载,主机上的修改会实时反映到容器中,方便在容器内运行构建、测试等任务。

HTTPS配置

镜像包含预生成的SSL证书用于本地测试。生产环境中需替换为有效的SSL证书,可通过以下方式实现:

使用Dockerfile

Dockerfile
FROM docker.xuanyuan.run/shinsenter/laravel:latest

# 复制自定义证书到容器
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key

# 添加自定义指令,例如:
# ADD --chown=$APP_USER:$APP_GROUP ./laravel/ /var/www/html/

使用docker run

shell
docker run -p 80:80 -p 443:443 -p 443:443/udp \
    -v ./laravel:/var/www/html \
    -v ./my_domain.crt:/etc/ssl/site/server.crt \
    -v ./my_domain.key:/etc/ssl/site/server.key \
    docker.xuanyuan.run/shinsenter/laravel:latest

使用docker-compose

yaml
services:
  web:
    image: docker.xuanyuan.run/shinsenter/laravel:latest
    volumes:
      - ./laravel:/var/www/html
      - ./my_domain.crt:/etc/ssl/site/server.crt
      - ./my_domain.key:/etc/ssl/site/server.key

环境变量

可通过设置以下环境变量来启用容器中与Web服务器一起运行的特定服务。

📝 注意:对于Laravel Pulse、Laravel Horizon或Laravel Reverb等功能,需要自行安装所需包并创建必要的配置。

环境变量描述
LARAVEL_AUTO_MIGRATION应用启动时是否自动运行数据库迁移。设为0禁用迁移。默认值为1。
LARAVEL_AUTO_MIGRATION_OPTIONS传递给artisan migrate命令的额外选项/标志(例如--seed)。
LARAVEL_ENABLE_QUEUE_WORKER启用Laravel队列worker的supervisor服务。设为1开始处理任务。默认值为0。
LARAVEL_QUEUE_WORKER_OPTIONS定义Laravel队列worker的自定义选项(例如连接、延迟)。
LARAVEL_ENABLE_SCHEDULER启用Laravel调度器的supervisor服务。设为0禁用定时任务。默认值为1。
LARAVEL_SCHEDULER_OPTIONS指定调度器执行的额外选项。
LARAVEL_ENABLE_HORIZON启用Laravel Horizon的supervisor服务(队列管理仪表板)。默认值为0。
LARAVEL_HORIZON_OPTIONSLaravel Horizon的自定义选项(例如环境、队列名称)。
LARAVEL_ENABLE_PULSE启用Laravel Pulse的supervisor服务(应用性能监控)。默认值为0。
LARAVEL_PULSE_OPTIONSLaravel Pulse的配置选项(例如端口、存储)。
LARAVEL_ENABLE_REVERB启用Laravel Reverb的supervisor服务(实时WebSocket通信)。默认值为0。
LARAVEL_REVERB_OPTIONSLaravel Reverb的配置选项(例如端口、存储)。

稳定镜像标签

https://code.shin.company/php的发布版本不保证从相同源代码构建的Docker镜像始终完全一致。我们每天构建新的Docker镜像,以确保其包含PHP、基础操作系统、Composer等的最新上游更新,相同标签的镜像会定期更新。

若需使用稳定版本,可拉取shinsenter/laravel:latest镜像并标记为稳定版本(如your-repo/laravel:stable),命令如下:

shell
docker pull docker.xuanyuan.run/shinsenter/laravel:latest
docker tag  shinsenter/laravel:latest your-repo/laravel:stable
docker push your-repo/laravel:stable

然后使用your-repo/laravel:stable作为基础镜像构建生产环境容器。

贡献

如果您觉得这些镜像有用,可通过***,或在https://code.shin.company/php/issues/new提交issue。您的支持有助于维护和改进这些社区镜像。

许可协议

本项目基于https://code.shin.company/php/blob/main/LICENSE许可。感谢您认可本项目背后的智力成果,如使用或借鉴本项目的任何想法,敬请给予适当的署名。


来自越南 🇻🇳 的爱。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 laravel 镜像标签

docker pull docker.xuanyuan.run/shinsenter/laravel:<标签>

DockerHub 原生拉取命令

docker pull shinsenter/laravel:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告