我正在使用一个包含一些文件的小型ruby目录,我想运行Ruby REPL(在docker镜像内)并访问我当前文件夹(例如)中的所有文件。
我不想每次更改文件时都建立一个新的容器,这可能吗?我看过docker文档,但不知道。
最佳答案
您正在寻找的是Docker Volumes。
这是一个概念证明:
步骤1.创建一个需要您的库的IRB REPL(如果需要,也可以选择其他):
# console.rb
#!/usr/bin/env ruby
require "irb"
require "irb/completion" # easy tab completion
require_relative "test"
Dir.chdir '/app'
IRB.start
步骤2.根据上面的控制台脚本的要求,将其用作
test
文件:# test.rb
def hello
puts "world"
end
步骤3.从容器中运行IRB,同时将当前目录安装到容器中。我在这里使用自己的 Alpine Ruby镜像,但是您可以选择所需的任何Ruby镜像(假定它随IRB一起提供)或构建自己的镜像。
$ docker run --rm -it --volume $PWD:/app dannyben/alpine-ruby ruby /app/console.rb
步骤4:此时,您应该在IRB控制台中,并且能够运行代码:
irb(main):002:0> hello
world
第5步:更改代码时,您需要使用以下代码再次加载它:
irb(main):003:0> load 'test.rb'
=> true
(或者,退出容器并再次运行它-无需重建)。
关于ruby - 在当前文件夹上使用Ruby REPL的Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54164019/