systemsdk / docker-nginx-php-laravel
Docker laravel 环境
Requires
- php: ^8.3
- ext-ctype: *
- ext-iconv: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-pdo_mysql: *
- laravel/framework: ^11.9
- laravel/tinker: ^2.9
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.8
- barryvdh/laravel-ide-helper: ^3.1
- fakerphp/faker: ^1.23
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- mockery/mockery: ^1.6
- neronmoon/scriptsdev: ^0.1
- nunomaduro/collision: ^8.0
- phpunit/phpunit: 11.3.*
- roave/security-advisories: dev-latest
README
运行 Laravel 所需的 Docker 环境(基于官方的 php 和 mysql Docker Hub 仓库)。
要求
- Docker Engine 版本 18.06 或更高
- Docker Compose 版本 1.22 或更高
- 一个编辑器或 IDE
- MySQL Workbench
注意:操作系统推荐 - 基于 Linux Ubuntu。
组件
- Nginx 1.27
- PHP 8.3 fpm
- MySQL 8
- Laravel 11
- Mailpit(仅用于开发环境中的调试电子邮件)
设置 Docker Engine 和 Docker Compose
要安装带有 docker compose 的 Docker Engine,请遵循 Docker Engine 页面上的步骤。
注意 1:如果您使用的是 Linux 操作系统,请在以上步骤之后运行以下命令: sudo usermod -aG docker $USER
注意 2:如果您使用的是 MacOS 12.2 或更高版本的 Docker Desktop,请启用 virtiofs 以提高性能(自 Docker Desktop v4.22 起默认启用)。
设置开发环境
1. 您可以从 GitHub 克隆此仓库,或者通过 composer 安装。
注意:如果存在,请删除 storage/mysql-data
文件夹。
如果您已安装 composer 并且想通过 composer 安装环境,可以使用以下命令:
composer create-project systemsdk/docker-nginx-php-laravel example-app
2. 将域名添加到本地 hosts
文件
127.0.0.1 localhost
3. 配置 /docker/dev/xdebug-main.ini
(Linux/Windows)或 /docker/dev/xdebug-osx.ini
(MacOS)(可选)
- 如果您需要在浏览器中仅对来自前端 IDE KEY:PHPSTORM 的请求进行调试
xdebug.start_with_request = no
在 Firefox 扩展程序 "Xdebug helper" 中安装本地,并在设置中设置 IDE KEY:PHPSTORM
- 如果您需要调试发送到 api 的任何请求(默认情况)
xdebug.start_with_request = yes
4. 在终端中构建、启动和安装 Docker 镜像
make build make start make composer-install make env-dev
注意:如果您想更改默认的 Docker 配置(web_port 等) - 打开 .env
文件,编辑必要的环境变量值,然后停止、重新构建、启动 Docker 容器。
5. 确保您已安装迁移/种子
make migrate make seed
6. 设置应用程序密钥
make key-generate
7. 要使用此应用程序,请在浏览器中打开以下 URL
在本地设置预发布环境
1. 您可以从 GitHub 克隆此仓库,或者通过 composer 安装。
注意:如果存在,请删除 storage/mysql-data
和 vendor
文件夹。
如果您已安装 composer 并且想通过 composer 安装环境,可以使用以下命令:
composer create-project systemsdk/docker-nginx-php-laravel example-app
注意:如果您想更改默认的 Docker 配置(web_port 等) - 创建未提交的 .env
文件,从 .env.staging
复制数据,编辑必要的环境变量值。
2. 在终端中构建、启动和安装 Docker 镜像
make build-staging make start-staging
3. 确保您已安装迁移
make migrate-no-test
4. 设置应用程序密钥
make key-generate
在本地设置生产环境
1. 您可以从 GitHub 克隆此仓库,或者通过 composer 安装。
注意:如果存在,请删除 storage/mysql-data
和 vendor
文件夹。
如果您已安装 composer 并且想通过 composer 安装环境,可以使用以下命令:
composer create-project systemsdk/docker-nginx-php-laravel example-app
2. 编辑 compose-prod.yaml
并设置 MySQL 的必要用户/密码。
3. 编辑 env.prod
并设置 MySQL 的必要用户/密码。
注意:如果您想更改默认的 Docker 配置(web_port 等) - 创建未提交的 .env
文件,从 .env.prod
复制数据,编辑必要的环境变量值。
4. 在终端中构建、启动和安装 Docker 镜像
make build-prod make start-prod
5. 确保您已安装迁移
make migrate-no-test
6. 设置应用程序密钥
make key-generate
获取容器 shell
在应用程序启动(make start
)后,要获取对 laravel 容器的 shell 访问权限,可以运行以下命令
make ssh
注意 1:请按顺序使用以下构建命令进入其他容器:make ssh-nginx
、make ssh-supervisord
、make ssh-mysql
。
注意 2:请使用 exit
命令从容器 shell 返回到本地 shell。
构建容器
如果您编辑了 Dockerfile 或其他环境配置,您需要使用以下命令重新构建容器:
make down make build make start
注意:如果您需要构建测试/预发布/生产环境,请使用特定环境的命令,更多详细信息请使用帮助 make help
查询。
启动和停止环境容器
请使用以下构建命令来启动和停止环境:
make start make stop
注意 1:对于预发布环境,需要使用以下构建命令:make start-staging
、make stop-staging
。
注意 2:对于生产环境,需要使用以下构建命令:make start-prod
、make stop-prod
。
停止并删除环境容器和网络
请使用以下构建命令来停止并删除环境容器和网络:
make down
注意:如果您需要停止并删除测试/预发布/生产环境,请使用特定环境的命令,更多详细信息请使用帮助 make help
查询。
其他主要命令可用
make build
make build-test
make build-staging
make build-prod
make start
make start-test
make start-staging
make start-prod
make stop
make stop-test
make stop-staging
make stop-prod
make down
make down-test
make down-staging
make down-prod
make restart
make restart-test
make restart-staging
make restart-prod
make env-dev
make env-test-ci
make ssh
make ssh-root
make fish
make ssh-nginx
make ssh-supervisord
make ssh-mysql
make composer-install-no-dev
make composer-install
make composer-update
make key-generate
make info
make help
make logs
make logs-nginx
make logs-supervisord
make logs-mysql
make drop-migrate
make migrate-no-test
make migrate
make seed
make phpunit
make report-code-coverage
make phpcs
make ecs
make ecs-fix
make phpmetrics
make phpcpd
make phpmd
make phpstan
make phpinsights
etc....
注意:请参阅 Makefile 中的更多命令。
架构与软件包
- Laravel 11
- phpunit
- laravel-ide-helper
- scriptsdev
- composer-bin-plugin
- ergebnis/composer-normalize
- composer-unused
- composer-require-checker
- security-advisories
- php-coveralls
- easy-coding-standard
- PhpMetrics
- phpcpd
- phpmd
- phpstan
- phpinsights
- rector
指南
处理您的项目
- 对于新功能开发,从
develop
分支创建一个新分支,可以使用以下两种模式之一:feature/{ticketNo}
- 频繁提交,并编写描述性提交消息,以便在审查时更容易跟踪步骤。
- 将此分支推送到仓库,并创建一个指向
develop
的拉取请求以获取反馈,格式为feature/{ticketNo}
- "Jira 任务的简短描述性标题"。 - 根据需要迭代。
- 请确保 CircleCI(或您不使用 CircleCI 的情况下的其他 CI 工具)上的所有检查都通过,状态为绿色。
- 当 PR 被批准时,它将被压缩并合并到
develop
中,然后合并到release/{No}
中以进行部署。
注意:您可以在这里找到 git flow 的详细示例。