systemsdk/docker-apache-php-symfony

v5.0.2 2024-08-22 22:22 UTC

This package is auto-updated.

Last update: 2024-09-22 22:39:24 UTC


README

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

Actions Status CircleCI Coverage Status Latest Stable Version MIT licensed

源代码

需求

  • Docker Engine版本18.06或更高
  • Docker Compose版本1.22或更高
  • 编辑器或IDE
  • MySQL Workbench

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

组件

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

设置Docker Engine与Docker Compose

要安装Docker Engine与docker compose,请遵循Docker Engine页面上的说明。

注意1:如果您使用的是Linux操作系统,请在上述步骤之后运行以下命令:sudo usermod -aG docker $USER

注意2:如果您使用的是MacOS 12.2或更高版本的Docker Desktop,请启用virtiofs以提高性能(从Docker Desktop v4.22开始默认启用)。

设置DEV环境

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

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

composer create-project systemsdk/docker-apache-php-symfony example-app

2.在.env.prod和.env.staging文件中为应用程序设置另一个APP_SECRET。

注意1:您可以在这里获取唯一的密钥。

注意2:在开发和测试环境中不要使用.env.local.php(如果存在,则删除它)。

注意3:如果您想更改默认的web端口/xdebug配置,可以创建.env.local文件并设置一些参数(参见.env文件)。

注意4:如果存在,请删除var/mysql-data文件夹。

3.将域名添加到本地'hosts'文件

127.0.0.1    localhost

4.配置/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

5.在终端中构建、启动和安装docker镜像

make build
make start
make composer-install

6.确保您已安装迁移/messenger传输

make migrate
make messenger-setup-transports

7.为了使用此应用程序,请打开以下URL在你的浏览器中

在本地设置STAGING环境

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

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

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

composer create-project systemsdk/docker-apache-php-symfony example-app

2.在终端中构建、启动和安装docker镜像

make build-staging
make start-staging

3.确保您已安装迁移/messenger传输

make migrate-no-test
make messenger-setup-transports

在本地设置PROD环境

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

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

composer create-project systemsdk/docker-apache-php-symfony example-app

2.编辑compose-prod.yaml并设置MySQL和RabbitMQ的必要用户/密码。

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

3.编辑env.prod并设置MySQL和RabbitMQ的必要用户/密码。

4.在终端中构建、启动和安装docker镜像

make build-prod
make start-prod

5.确保您已安装迁移/messenger传输

make migrate-no-test
make messenger-setup-transports

获取容器shell

应用程序启动后(使用make start)为了在symfony容器内部获得shell访问权限,您可以运行以下命令:

make ssh

注意1:为了进入其他容器,请使用以下make命令:make ssh-supervisordmake ssh-mysqlmake ssh-rabbitmq

注意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-staging
make env-prod

make ssh
make ssh-root
make fish
make ssh-supervisord
make ssh-mysql
make ssh-rabbitmq

make composer-install-no-dev
make composer-install
make composer-update

make info
make help

make logs
make logs-supervisord
make logs-mysql
make logs-rabbitmq

make drop-migrate
make migrate
make migrate-no-test

make fixtures

make messenger-setup-transports

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)