使用 Docker 与 Symfony
您可以在 Symfony 中使用 Docker 吗? 当然可以!并且存在几种工具可以帮助您,具体取决于您的需求。
完整的 Docker 环境
如果您想要一个完整的 Docker 环境(即 PHP、Web 服务器、数据库等都在 Docker 中),请查看 https://github.com/dunglas/symfony-docker。
或者,您可以在本地机器上安装 PHP 并使用 symfony 二进制 Docker 集成。在这两种情况下,您都可以利用 Symfony Flex 的自动 Docker 配置。
Flex Recipes & Docker 配置
某些软件包的 Flex recipe 也包含 Docker 配置。例如,当您运行 composer require doctrine
(以获取 symfony/orm-pack
)时,您的 compose.yaml
文件将自动更新以包含 database
服务。
首次安装包含 Docker 配置的 recipe 时,Flex 会询问您是否要包含它。或者,您可以在 composer.json
中设置您的偏好,方法是将 extra.symfony.docker
配置设置为 true
或 false
。
某些 recipe 还包括对您的 Dockerfile
的添加。要获取这些更改,您需要已在应用的根目录下有一个 Dockerfile
,并且在其中某处包含以下代码
1 2
###> recipes ###
###< recipes ###
Recipe 将找到此部分并在内部添加更改。如果您正在使用 https://github.com/dunglas/symfony-docker,您已经拥有此代码。
安装软件包后,通过运行以下命令重建您的容器
1
$ docker-compose up --build
Symfony 二进制 Web 服务器和 Docker 支持
如果您正在使用 symfony 二进制 Web 服务器 (例如 symfony server:start
),那么它可以自动检测您的 Docker 服务并将它们公开为环境变量。请参阅 Symfony 本地 Web 服务器。
注意
macOS 用户需要显式允许默认 Docker 套接字用于 Docker 集成,才能按照 Docker 文档中的说明工作。