使用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
手动运行它(在附加到图像后)并按预期工作。
可能是什么问题?
答案 0 :(得分:1)
您确定正确运行脚本吗?不应该
CMD ["ruby", "./test.rb"]
我的意思是,我可以假设脚本具有可执行权限,但它不是shell脚本。