我在我的应用程序中使用earnshark_sdk 0.2.0 ruby gem,现在我想使用最新版本0.2.1。所以我尝试了以下
的Gemfile:
gem 'earnshark_sdk', '~> 0.2.1'
我做了bundler update
由于应用程序已停靠,我尝试进入容器并删除旧版本并安装新版本。
gem list
显示earnshark_sdk (0.2.1)
当我docker-compose up
给出
我是ruby和docker的新手,任何建议都会受到欢迎。
谢谢!
答案 0 :(得分:2)
你看到它,因为在你的系统中你有一个版本的宝石,但在docker容器中有另一个版本
所以你需要在docker容器中运行bundle install
。
要做到这一点,你需要写道:
docker exec -it <your container name/id> <command which you want to run>
在你的情况下:
docker exec <container name\id> gem list
- 检查容器内的宝石
docker exec <container name\id> bundle install
- 在容器内安装宝石
你可以阅读它 here
答案 1 :(得分:0)
回答我自己的问题,
我的docker容器无法检测到我的gemfile,通过在compose中定义gemfile的默认路径,我能解决这个问题。
在docker-compose.yml
中添加了卷装入volumes:
- /e/Workspaces/MyApp/src/Gemfile:/home/app/webapp/Gemfile