docker RUN - 不执行脚本

时间:2017-05-19 17:59:15

标签: ruby docker

使用https://hub.docker.com/_/ruby/为Ruby应用程序构建Docker镜像我有一个带有空Gemfile,Gemfile.lock和1行Ruby脚本(test.rb)的骨架项目,如下所示:

File.open("success.txt", 'w') { |file| file.write("Success!") }

注意Dockerfile是:

FROM ruby:2.1-onbuild
CMD ["./test.rb"]

但是,当我使用:

构建并运行它时
docker build -t test-ruby-app . 
docker run -it --name my-running-test-ruby-app test-ruby-app

我可以看到它使用docker ps运行并退出。如果使用:

附加到它
docker run --entrypoint=bash -it  <image id>

我可以看到Ruby脚本没有运行(没有success.txt文件)。

我可以使用./test.rb手动运行它(在附加到图像后)并按预期工作。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

您确定正确运行脚本吗?不应该

CMD ["ruby", "./test.rb"]

我的意思是,我可以假设脚本具有可执行权限,但它不是shell脚本。