在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脚本更容易。
答案 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
运行应用程序。您不需要重建任何内容,因为您使用的卷映射“热替换”'你的代码直接进入容器。