介绍Docker支持
多年来,码头工人已经成为事实上的用于构建、传送和运行服务器应用程序的标准。Docker允许您在项目的存储库中存储代码旁边构建托管软件的环境所需的所有指令。
我很激动地宣布经过六年的合作,Symfony和ob娱乐下载API的平台现在包含了一套业界首创的工具,旨在自动创建、管理和运行应用程序所需的Docker容器。
Docker Compose和Dockerfile Flex configuration
您可能知道,Symfony附带了一个名为ob娱乐下载Flex.Flex是一个Composer插件,可以很容易地向项目添加新功能。当您安装一个新的PHP库时,Flex会自动生成设置该库所需的代码和配置。
Flex有了新的超能力!它现在能够生成和更新一个docker-compose.yml
文件来添加您刚刚安装的包所需的服务!
例如,使用教义ORM,你需要一个DBMS。你猜怎么着?当安装Doctrine(例如:作曲家要求orm
), Flex现在会询问你是否需要更新你的docker-compose.yml
文件。如果你回答“是”,它会自动添加一个可以使用的Postgres服务器!
另一个例子:假设你正在使用ob娱乐下载Symfony UX Turbo而你想利用它强大的实时功能.然后,你需要一个Mercure.rocks中心。ob娱乐下载Symfony Flex已经覆盖了你:它可以自动添加一个到你的docker-compose.yml
文件!
运行docker-compose起来
一切都准备好了!
除了Docker Compose配置器之外,还有一个Dockerfile
还添加了配置器。它可以为你安装的PHP包添加所需的PHP扩展。pdo_pgsql
)到兼容的Dockerfile。稍后再详细说明!
目前,以下Flex配方利用了这些新的配置器:
PHP包 | Docker合成添加 | Dockerfile之外 |
---|---|---|
ob娱乐下载symfony / orm-pack |
postgres |
pdo_pgsql |
ob娱乐下载symfony / mercure-bundle |
dunglas /美居酒店 |
|
ob娱乐下载symfony /豹 |
chromedriver geckodriver |
|
ob娱乐下载symfony /梅勒 |
schickling / mailcatcher |
|
blackfireio / blackfirob娱乐下载e-symfony-meta |
黑焰/黑焰 |
Docker Compose配置器也生成两个覆盖文件:docker-compose.override.yml
包含开发中所需的特定配置,以及docker-compose.prod.yml
生产中需要的配置。我们会回到这个问题上。
ob娱乐下载Symfony CLI和Docker撰写
的ob娱乐下载Symfony CLI,法比恩在SymfonyWorld大会的开幕主题演讲中公开了这款软件ob娱乐下载来自动检测Docker Compose服务,并自动配置你的应用程序来使用它们.
为此,Symfonyob娱乐下载 CLI查询Docker Engine API以找到Docker容器使用的端口,并填充应用程序连接到它们所使用的环境变量。多亏了生成的docker-compose.override.yml
, Symfony Flex添加的服务与此特性兼ob娱乐下载容。
这还不是全部:您可以同时启动多个项目而不会产生任何冲突(例如,每个项目使用不同的Postgres服务器)。为了实现这一点,Docker Compose服务docker-compose.override.yml
映射到主机上的任意端口!运行docker-compose ps
在项目目录中查看分配的端口。
Docker骨架和安装程序
Symfob娱乐下载ony CLI是开始使用Symfony的最简单的方式。但是它需要一个本地PHP安装,一个本地Composer安装,并且被设计为只在开发中使用。
如果您希望确保团队中的所有开发人员都使用完全相同的PHP版本,该怎么办?如果您想要方便用户上手,又不想让开发人员在本地安装PHP或Composer,该怎么办?如果您想在持续集成系统中甚至在生产中使用相同的配置,该怎么办?
Symfony Docob娱乐下载ker来了!
ob娱乐下载Symfony码头工人是包含安装和运行Symfony项目所需的所有内容的框架。ob娱乐下载与ob娱乐下载Symfony码头工人只要你安装了Docker Compose,你就可以创建新的Symfony项目,而不需要在本地安装任何东西。ob娱乐下载
ob娱乐下载Symfony Docker附带两个简单的图片:
- PHP FPM(和CLI)
- 的球童网络服务器
它包含Dockerfile
而且docker-compose.yml
与Symfony Flex配置器兼容的文件。ob娱乐下载它的设计简单、易读、不臃肿,但仍然允许在本地、CI和生产环境中运行项目!
和Symfob娱乐下载ony CLI一样,ob娱乐下载Symfony码头工人还设置项目使用的环境变量,以确保它连接到Flex配置器安装的Docker Compose服务。
因为ob娱乐下载Symfony码头工人使用闪亮的Caddy web服务器,TLS证书自动生成和更新本地主机
和你的真实域名在prod), HTTP/2和HTTP/3是本地支持的,你可以安装所有的盒模块你想要(我自己的)美居酒店而且跟据模块,一个OAuth/OpenID连接模块,一个HTTP缓存模块…)!
开始ob娱乐下载Symfony码头工人很简单:
1 2 3
$git克隆https://github.com/dunglas/ob娱乐下载symfony-docker$Docker-compose build -pull -no-cache$docker-compose起来
至此,Symfony已经ob娱乐下载安装完毕,您的项目已经启动并运行。安装Doctrine,或Blackfire,或任何其他Docker配置器支持的包,所需的服务和PHP扩展将自动安装!
ob娱乐下载Symfony码头工人包含更多的好处,比如可以选择要安装的Symfony版本。ob娱乐下载它还可以添加到现有项目中。读它的文档欧宝官网下载app来了解更多。
ob娱乐下载Symfony码头工人也一个GitHub模板你可以用它来引导你的项目。它包含一个GitHub动作工作流使用Docker容器自动运行您的测试!
ob娱乐下载Symfony码头工人并不是唯一与新的Flex配置器兼容的框架!的API平台分布(从这ob娱乐下载Symfony码头工人已提取)也支持他们!
Kubernetes
而ob娱乐下载Symfony码头工人(以及API平台分发)可以在生产中使用Docker Compose,仅支持单主机部署。
这对于小型到中型的项目来说可能已经足够了,但是当事情变得严重时,你可能会想要使用容器编配器之王:Kubernetes.
提供的Docker图像ob娱乐下载Symfony码头工人已经设计成与Kubernetes兼容。但还有更多!API平台项目提供了一个舵chart (Kubernetes的包管理器)在单个命令中部署您的项目到任何Kubernetes集群!
这张图表完全兼容ob娱乐下载Symfony码头工人(你不需要使用API平台)。复制粘贴图表在你的项目中瞧!
有关这个全新Docker集成的更多详细信息,请访问ob娱乐下载SymfonyWorld在线2021冬季版重播看看我关于这个的演讲你也可以查看下面我演讲的幻灯片:
如果你喜欢这些新功能,如果你想要这样的新功能,赞助我而且赞助Symfony项目ob娱乐下载!
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
我能问一下为什么选择了Caddy而不是一些更传统的东西吗(我没有反对它,只是好奇)?
参见https://github.com/dunglas/syob娱乐下载mfony-docker/pull/75
在开始代码部分,我猜它在' docker-compose build -pull -no-cache '之前缺少' cd symob娱乐下载fony-docker '指令
它就像使用symfony/orm的魅力!ob娱乐下载
感谢您的贡献!
我目前正在使用Symfony-Docker,但从我所看到的来看,它是作ob娱乐下载为一个单独的应用程序工作的。这可能只是一个我的问题,但Caddy能够通配符子域(*.localhost),反向代理到localhost?
再次感谢!