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

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

什么是在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脚本更容易。

ruby docker
1个回答
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运行您的应用程序。您不需要重建任何东西,因为使用卷映射可以直接将代码“热替换”到容器中。

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