使用已安装的gem运行docker中的ruby脚本

时间:2017-12-30 16:24:44

标签: ruby docker

在docker容器中运行需要一些宝石的ruby脚本的快速方法是什么?

我经常遇到这样的情况:我想尝试一个新的宝石,或写一个简短的脚本,我不想在本地安装宝石。我的第一个想法是写一个Dockerfile并构建图像,例如

FROM ruby:latest

RUN gem install httparty
COPY test.rb /usr/app/

CMD ["ruby", "/usr/app/test.rb"]

test.rb

require "httparty"
puts HTTParty.get("https://now.httpbin.org/").body

然后在构建docker build -t run-ruby-with-gems .

之后运行docker run -it --rm run-ruby-with-gems

这很有效,但并不方便。所以也许有一些聪明的内容或任何其他可以使整个过程快速运行ruby脚本更容易。

1 个答案:

答案 0 :(得分:3)

我强烈建议您使用docker-compose执行该任务。 请参阅此docker-compose.yml文件:

version: '3'
services:
  ruby:
    image: ruby:latest
    command: bash -c 'gem install httparty && ruby test.rb'
    working_dir: /usr/app/
    volumes:
      - ./:/usr/app/

将docker-compose.yml文件放在与test.rb相同的目录中,然后每当你想测试你的更改时运行命令:docker-compose up - 在宝石和代码中。

此docker-compose配置运行命令,用于安装gems并使用up运行应用程序。您不需要重建任何内容,因为您使用的卷映射“热替换”'你的代码直接进入容器。