Bundler寻找旧版gem

我使用earnshark_sdk 0.2.0ruby在我的应用程序,现在我想使用最新版本0.2.1。 所以我试着做下面的事情

的Gemfile:

gem 'earnshark_sdk', '~> 0.2.1' 

我做了一个bundler update

由于该应用程序dockerized,我试图去容器内,并删除旧版本,并安装了新的。

gem list显示earnshark_sdk (0.2.1)

当我docker-compose up它给

在这里输入图像说明

我对ruby和docker工人都很陌生,任何build议都会受到欢迎。

谢谢!

你看,因为在你的系统中你有一个版本的gem,但在docker集装箱另一个。
所以你需要在Docker容器中运行bundle install 。 要做到这一点,你需要写:
docker exec -it <your container name/id> <command which you want to run>

在你的情况下:
docker exec <container name\id> gem list – 检查容器内的gem
docker exec <container name\id> bundle install – 在容器中安装gems
你可以在这里阅读

回答我自己的问题,

我的docker容器无法检测到我的gemfile,通过在撰写中定义gemfile的默认path,我可以解决这个问题。

在docker-compose.yml中添加了卷装入

 volumes: - /e/Workspaces/MyApp/src/Gemfile:/home/app/webapp/Gemfile