小编Edg*_*ons的帖子

Docker作为有效的Rails开发环境

[ 更新 ]

不幸的是,亲爱的同事们,我现在放弃了码头工作者.主要因素:

  • 共享卷的性能很差(有一些使用其他工具的解决方法,但它似乎更像是一个黑客攻击).但对于那些使用Linux的优秀人员来说,这不是问题!
  • 我已经低估了一些前期工作,这需要使远程运行时与编辑器/ IDE很好地协同工作.像linting这样的东西假设一个开箱即用的本地运行时,似乎最普遍的解决方案是无数的bash包装器脚本将执行委托给docker容器.

我们还雇了两个DevOps人员,他们有很多码头工作经验,如果他们会出现,如何(无痛地!)在我们公司引入docker进行托管和开发,我很乐意修改这个话题.


[ 旧帖子 ]

由于现在可以使用本机OSX管理程序的新版本,我决定尝试将所有Ruby/Rails/JS开发推送到docker容器.我在一个新的El Capitan装置上玩了很多,试图将我们拥有的一些私有宝石和我们的monolith Rails应用程序对接.

有几个问题,我希望我们的社区可以帮助解决.

目标 - 一切正常,主机只安装了iTerm,git,Sublime,SourceTree和Docker(没有什么是一成不变的,如果一些额外的依赖(-ies)可能会改善/使工作流程变得更加容易,我将很乐意审查选项)

要求

  • 有很多服务(EngineYard,ElastiBeanstalk,Github等)需要我的密钥才能正常运行,我应该能够重用我主机上的那些服务.
  • 在所有Ruby应用程序容器中重用已安装的RubyGems会很不错.基本上,docker container/docker-compose文件的安装方式是它安装相同的目录GEM_PATH,bundler在每个容器中都会安装gems.应用程序bundler应该负责加载正确的版本.
  • 我应该能够轻松调试代码 - 放置断点并与调试器交互,因为它将在本地运行
  • 它应该支持TDD循环 - 我更改文件,它被guard容器中的进程捕获并执行相关的测试
  • 执行Cucumber/Selenium测试时,我应该能够看到浏览器中发生了什么.(据我所知,选项是 - 通过VNC连接到虚拟帧缓冲区或在本地运行X服务器.我更喜欢在主机端具有较少依赖性的选项).

问题

  • 如今,对现有应用程序进行Docker化相对容易,您,好人如何处理创建/引导新项目?具有通常依赖性的公共开发容器?
  • 是否有可能以容器"持续运行"的方式设置或多或少像VM一样?(这可以解决我的许多要求 - 运行guard,更容易调试,在同一次运行中启动任意进程)
  • 我打算使用docker打包我们的CI应用程序.这意味着对于不同的环境,可能存在稍微不同的依赖关系,但安装的卷也会有所不同(可能CI的容器不具有这些容器).它应该作为docker-compose.yml(卷)中的不同配置解决,还是在从基础文件继承的不同docker文件中定义?

其他想法

我也很好地尝试商业或非商业工具,包装/捆绑所描述的工具.到目前为止,我发现了一个名为http://wercker.com的东西,我不喜欢它,它似乎需要你设置dev env,这会破坏整个努力的目的.

如果之前发布并明确回答,请随意向下投票.另一方面,如果这个帖子会产生指南,链接,建议顺利完成,我会很高兴,我很确定这些日子里有很多开发者.

macos development-environment ruby-on-rails docker

15
推荐指数
1
解决办法
464
查看次数