如何使用Vagrant、ansible和docker使Linux开发人员的机器尽可能接近生产
很抱歉没有明确的标题,这是我想要实现的如何使用Vagrant、ansible和docker使Linux开发人员的机器尽可能接近生产,docker,vagrant,ansible,Docker,Vagrant,Ansible,很抱歉没有明确的标题,这是我想要实现的 使用docker运行我的web应用程序(一个容器用于数据库,一个容器用于缓存,一个容器用于php fpm+代码) 在生产中,由于我没有流浪者,我希望标准ansible与docker模块能够提供环境 由于我的开发人员拥有linux机器和vagrant support docker作为提供商,我希望这些docker容器在没有VM的情况下直接在我们的开发人员机器上运行(因为我们有很多项目,每个项目保留一个VM很快就会耗尽RAM,我们需要经常停止/关闭机器,特别
- 使用docker运行我的web应用程序(一个容器用于数据库,一个容器用于缓存,一个容器用于php fpm+代码)
- 在生产中,由于我没有流浪者,我希望标准ansible与docker模块能够提供环境
- 由于我的开发人员拥有linux机器和vagrant support docker作为提供商,我希望这些docker容器在没有VM的情况下直接在我们的开发人员机器上运行(因为我们有很多项目,每个项目保留一个VM很快就会耗尽RAM,我们需要经常停止/关闭机器,特别是在维护阶段)
- 我们在Mac/Windows上有一些开发人员,所以我们仍然需要vagrant来提供抽象层“vagrant up”,以创建一个简单的开发环境
Vagrant.configure(2) do |config|
config.vm.define :dbmachine do |dbmachine|
dbmachine.vm.provider = "docker" do |d|
...
end
end
config.vm.define :cachemachine do |cachemachine|
cachemachine.vm.provider = "docker" do |d|
...
end
end
end
但是在生产/阶段,因为我没有vagrant,所以我不再有描述体系结构的东西
那么,有没有办法将这些东西结合起来以满足我的需要呢?请注意:
流浪汉和码头工人是替代品。=>嗯,一个人可以使用docker on vagrant作为供给者或提供者。为了不在docker中运行数据库,我的想法是,拥有数据库的docker可以更快更容易地维护数据库,因为这样我可以控制部署哪个版本的postgresql等。3)是的,好主意。1)在vagrant中运行docker就像在VM中运行VM一样。它只对那些运行windows和mac的用户有意义。2) 虽然您可以使用vagrantfile来设置docker主机(一台可以运行docker实例的机器),但我认为ansible更适合这项工作,因为它可以设置docker主机,并对其进行维护/更新/部署等。Hanks我实际上已经按照您所说的那样做了,我写了一篇关于它的文章,它的工作非常出色,因为流浪汉有一个码头补给员。也就是说,您将不会使用virtualbox,而是使用docker来托管您的流浪服务。如果您一次只处理一个或两个项目,并且可以强制所有开发人员在其开发人员机器上遵循相同的设置,那么同时使用VM和docker可能会有点过头。但是在某个时刻,Docker想要在Linux主机上对您的网络接口做的事情开始变得一团糟。在某些情况下,将其封装到特定于项目的VM框(vagrant handled)实际上非常有用。YMMV和所有的爵士乐。
Vagrant.configure(2) do |config|
config.vm.define :dbmachine do |dbmachine|
dbmachine.vm.provider = "docker" do |d|
...
end
end
config.vm.define :cachemachine do |cachemachine|
cachemachine.vm.provider = "docker" do |d|
...
end
end
end