Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Bundler寻找gem的旧版本_Ruby On Rails_Ruby_Docker - Fatal编程技术网

Ruby on rails Bundler寻找gem的旧版本

Ruby on rails Bundler寻找gem的旧版本,ruby-on-rails,ruby,docker,Ruby On Rails,Ruby,Docker,我在我的应用程序中使用earnshark_sdk 0.2.0 ruby gem,现在我想使用最新版本0.2.1。所以我试着做了以下几点 档案: gem 'earnshark_sdk', '~> 0.2.1' 我做了一个bundler更新 由于应用程序已停靠,我尝试进入容器中,删除旧版本并安装新版本 gem列表显示earnshark_sdk(0.2.1) 当我docker编写时它给出 我对ruby和docker都是新手,欢迎任何建议 谢谢 您看到它是因为在您的系统中有一个版本的gem,但

我在我的应用程序中使用earnshark_sdk 0.2.0 ruby gem,现在我想使用最新版本0.2.1。所以我试着做了以下几点

档案:

gem 'earnshark_sdk', '~> 0.2.1'
我做了一个
bundler更新

由于应用程序已停靠,我尝试进入容器中,删除旧版本并安装新版本

gem列表
显示
earnshark_sdk(0.2.1)

当我
docker编写时
它给出

我对ruby和docker都是新手,欢迎任何建议


谢谢

您看到它是因为在您的系统中有一个版本的gem,但在docker容器中有另一个版本。
因此,您需要在docker容器内运行
bundle install
。 要做到这一点,您需要写:
docker exec-it

在您的情况下:
docker exec gem list
-检查容器内的gem
docker exec bundle安装
-在容器内安装gems

你可以读到它

回答我自己的问题

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

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

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

要查找容器名称/id,您需要运行
docker ps
您的意思是在这里的第二行中安装
bundle
?是的,我的docker容器中的gem列表也显示了earnshark_sdk 0.2.1。我也在那里安装了一个捆绑包。是的@dendomenkoca你能附上你的docker-compose.yml和Dockerfile吗?