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脚本在主机上安装的目录上运行,则需要卷映射。