跳到内容

使用 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 配置设置为 truefalse

某些 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 文档中的说明工作。

这项工作,包括代码示例,根据 Creative Commons BY-SA 3.0 许可获得许可。
目录
    版本