systemsdk/docker-apache-php-laravel

v4.1.1 2024-08-21 15:25 UTC

This package is auto-updated.

Last update: 2024-09-21 15:40:14 UTC


README

运行 Laravel 所需的 Docker 环境(基于官方的 php 和 mysql Docker Hub 仓库)。

Actions Status CircleCI Coverage Status Latest Stable Version Total Downloads MIT licensed

源代码

要求

  • Docker 引擎版本 18.06 或更高版本
  • Docker Compose 版本 1.22 或更高版本
  • 一个编辑器或 IDE
  • MySQL Workbench

注意:操作系统推荐 - 基于 Linux Ubuntu。

组件

  1. Apache 2.4
  2. PHP 8.3(Apache 处理器)
  3. MySQL 8
  4. Laravel 11
  5. Mailpit(仅用于开发环境中的调试电子邮件)

设置 Docker Engine 与 Docker Compose

要安装带有 docker compose 的 Docker Engine,请参阅页面 Docker Engine 上的说明。

注意 1:如果您正在使用 Linux OS,请在以上步骤之后运行以下命令: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-apache-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.为了使用此应用程序,请在浏览器中打开以下网址

本地设置预发布环境

1.您可以从 GitHub 克隆此存储库或通过 composer 安装。

注意:如果存在,请删除 storage/mysql-datavendor 文件夹。

如果您已安装 composer 并想通过 composer 安装环境,可以使用以下命令:

composer create-project systemsdk/docker-apache-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-datavendor 文件夹。

如果您已安装 composer 并想通过 composer 安装环境,可以使用以下命令:

composer create-project systemsdk/docker-apache-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 命令进入其他容器:make ssh-nginxmake ssh-supervisordmake ssh-mysql

注意2:请使用exit命令从容器shell返回到本地shell。

构建容器

如果您编辑了Dockerfile或其他环境配置,您需要使用以下命令再次构建容器

make down
make build
make start

注意:如果您需要构建测试/预发布/生产环境,请使用特定于环境的命令,更多详细信息可以使用make help查看。

启动和停止环境容器

请使用以下make命令来启动和停止环境

make start
make stop

注意1:对于预发布环境,需要使用以下make命令:make start-stagingmake stop-staging

注意2:对于生产环境,需要使用以下make命令:make start-prodmake stop-prod

停止并删除环境容器和网络

请使用以下make命令来停止并删除环境容器和网络

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-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-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中的更多命令

架构与包

指南

在您的项目上工作

  1. 对于新功能开发,将develop分支复制到一个新的分支,格式为以下两种模式之一
    • feature/{ticketNo}
  2. 经常提交,并编写描述性提交信息,以便在审查时更容易跟踪步骤。
  3. 将此分支推送到仓库,并在develop中创建拉取请求以获取反馈,格式为feature/{ticketNo} - "Jira任务的简短描述性标题"。
  4. 根据需要迭代。
  5. 请确保CircleCI(或如果您未使用CircleCI,则为另一个服务)上的所有检查都已通过,状态为绿色。
  6. 当PR获得批准时,它将被压缩并合并到develop中,然后合并到release/{No}中以进行部署。

注意:您可以在这里找到git flow详细示例。

许可证

MIT许可证(MIT)