首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker,如何在docker中替换capistrano任务

Docker,如何在docker中替换capistrano任务
EN

Stack Overflow用户
提问于 2016-08-23 00:18:46
回答 1查看 542关注 0票数 3

我正在尝试停靠我的生产rails应用程序。

目前app使用Ansible进行配置,并使用capistrano进行部署。

我研究了不同的docker部署策略,并提出了在docker中去掉capistrano的想法,并将docker与docker-compose结合使用

我正在编写dockerfile来配置和部署应用程序,但部署类似于capistrano的应用程序有点复杂,因为deploy.rb使用一些rake任务来设置预部署任务,如创建目录、设置应用程序名称和获取一些变量。

如何在dockerfile中复制cap任务,或者是否有方法在docker文件或运行docker container中使用当前cap rake任务?

EN

回答 1

Stack Overflow用户

发布于 2016-08-23 01:45:18

现在是退后一步的好时机,考虑一下Docker的好处是否超过了增加的复杂性。假设是这样,这里有一些关于如何让这些组件更好地协同工作的建议。

虽然Ansible是一个配置管理系统,但它也是为编排(即在一系列远程机器上运行命令)而设计的。这与Capistrano有一些交叉,因此,您可能会发现将Capistrano任务移植到Ansible并从堆栈中消除工具(从而消除复杂性)是很有用的。这可能是因为创建了一个deploy.yaml剧本,您可以运行该剧本来部署应用程序。

Docker还与Ansible的职责重叠,但在不同的领域,配置。应用程序所需的系统配置的任何部分都可以使用Dockerfile在容器中进行配置,而不是使用Ansible在系统范围内进行配置。

如果您有设置应用程序环境的rake任务,您可以将它们放在Dockerfile文件的RUN命令中。但是,请记住,这些操作仅在构建映像时执行,而不是在运行映像时执行。

一般来说,我是这样看待它的: Docker设置了一个容器,它包含了运行应用程序的一部分所需的一切(包括特定的代码签出)。Ansible配置您运行容器的环境,并管理所有工作以更新容器并将其放在正确的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39084308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档