Dockerize Ruby脚本,将目录作为input/输出

我是docker的新手,我需要帮助dockerize一个ruby脚本,它需要一个input目录和输出目录。

generate_rr_pair.rb BuildRR -n /data/ -o /output

脚本是做什么的,它会采取-n选项(input),并检查目录是否存在,如果它使用里面的文件作为input。 脚本将输出数据到-o选项(输出)。 如果输出目录不存在,脚本将在那里创build目录和输出文件。

我如何创build一个Dockerfile来处理这个? 我应该把它们作为环境variables吗? 或者我应该使用安装的卷? 但是由于脚本处理fileIO,我不确定是否需要卷。 input目录应该已经存在于主机上,并且输出目录将被创build。 这两个目录,应该停留在docker集装箱停止后。

在docker文件中使用官方的ruby镜像 :

 FROM ruby:2.1-onbuild CMD ["ruby", "generate_rr_pair.rb"] 

正常build造集装箱

 docker build -t myruby . 

然后可以运行,如下所示:

 docker run --rm -it -v /data:/data -v /output:/output myruby BuildRR -n /data -o /output 

请注意,如果您希望容器中的ruby脚本在主机上安装的目录上运行,则需要卷映射。