使用Docker容器作为Ruby on Rails开发环境

问题描述 投票:0回答:1

我想将Docker用作开发环境。我熟悉基本的Docker概念,如容器,图像,卷等。我也在阅读this文章。

  1. 我认为已经有专门为RoR开发创建的图像。有人可以推荐我几张图片吗?
  2. 假设我创建了一个容器,挂载我的工作文件夹(RoR项目)。除了代码编写,还有命令行工作,如Linux任务(updateinstall),Rails特定命令(Rake,迁移....)。我可能需要安装新的二进制文件或新宝石,使用rbenv更改Ruby版本。如何在Docker下完成这些任务?我可以在控制台中输入命令或者ssh容器吗?

我设法创建一个ubuntu容器并运行如下:

docker run -it -v /Users/me/Documents/Projects:/var/source_files ubuntu

它为我的容器创建了一个控制台。接下来我猜我可以运行像gem installapt-get update等命令。这是我们应该如何配置我们的环境?

我找不到有关如何运行,如何维护,如何添加/删除宝石等信息。

ruby-on-rails docker
1个回答
1
投票

这取决于你和你最喜欢的东西。我假设在某种类型的库而不是成熟的应用程序上进行单独开发[1]。

例如,我倾向于使用Makefiles when developing on specific Golang projects并且有一些单独的图像我倾向于用于不同的场合。例如,如果我必须测试Python / Node脚本,我只需输入play,然后进入一个预先安装了几个依赖项的愚蠢容器:

但是,根据我的个人经验,我发现shell脚本/别名在项目中非常有效,因此我倾向于使用简单的别名来处理大多数项目。例如,如果我是你,我将使用简约方法并将dev别名为docker run -ti -v $(pwd):/src $RUBY_IMAGE,以便您可以从任何项目中运行dev rake testdev rails server等。你的$RUBY_IMAGE应该安装一些实用程序(htop,curl等),你应该很高兴。

同样,我必须强调这一事实,这实际上取决于你对什么感到满意 - 大多数时候我只使用Makefile非常高效。

[1]如果在完全成熟的应用程序上工作,docker-compose适用于很多人并且拥有非常好的DX。 minikube是一个我建议你只有在知道如何使用kubernetes时才能选择的工具。我们使用了docker-compose很长一段时间,但由于它与我们的生产环境密切相关,因此几个月后已经切换到minikube,并且当你有很多服务相互交谈时,minikube工作得更好(imho)。

© www.soinside.com 2019 - 2024. All rights reserved.