blamebutton/laravel-docker-builder

为Laravel准备的成品Docker文件

0.1.4 2023-01-20 18:01 UTC

README

Banner

Packagist Version Packagist Downloads GitHub Workflow Status

功能

  • 使用Artisan CLI构建Docker镜像
  • 检测PHP版本和扩展
  • 使用Vite.js或Laravel Mix捆绑资源
  • 分离NGINX和PHP-FPM镜像
  • 部署示例(适用于Kubernetes和Docker Compose)

安装

composer require --dev blamebutton/laravel-docker-builder

用法

检测配置

php artisan docker:generate --detect

当将 --detect 传递给 docker:generate 命令时,它将自动检测以下需求

  • PHP版本,通过检测 composer.json 中的 php 版本
  • PHP扩展,通过检测项目的配置
    • 缓存驱动器:Redis、Memcached、APC
    • 数据库驱动器:MySQL、Postgres、SQL Server
    • 广播驱动器:Redis
    • 队列驱动器:Redis
    • 会话驱动器:Redis、Memcached、APC
  • Node包管理器,通过检测 package-lock.jsonyarn.lock 的存在
  • Node构建工具,通过检测 vite.config.jswebpack.mix.js 的存在

手动配置

php artisan docker:generate

当未传递任何选项给 docker:generate 时,将使用提示来配置项目需求。

运行 php artisan docker:generate --help 查看所有可用选项及其支持的值。

  • -p, --php-version - Docker镜像的PHP版本
  • -e, --php-extensions - 要包含在Docker镜像中的PHP扩展(逗号分隔)
  • -o, --optimize - 容器启动时运行 php artisan optimize
  • -a, --alpine - 使用基于Alpine Linux的镜像
  • -m, --node-package-manager - 使用NPM或Yarn安装Node依赖项
  • -b, --node-build-tool - 运行Vite.js或Laravel Mix构建步骤

配置

选项1:配置文件

php artisan vendor:publish --provider="BlameButton\LaravelDockerBuilder\DockerServiceProvider"

选项2:.env

默认情况下,配置文件读取以下环境变量以确定Docker镜像标签。

DOCKER_NGINX_TAG=laravel-app:nginx
DOCKER_PHP_TAG=laravel-app:php