【问题标题】:Bundler looking for old version of gem寻找旧版本 gem 的 Bundler
【发布时间】:2017-09-25 07:33:51
【问题描述】:

我在我的应用程序中使用 Earnshark_sdk 0.2.0 ruby​​ gem,现在我想使用最新版本 0.2.1。所以我尝试执行以下操作

宝石文件:

gem 'earnshark_sdk', '~> 0.2.1'

我做了一个bundler update

由于应用程序是 dockerized,我尝试进入容器并删除旧版本并安装新版本。

gem list 显示earnshark_sdk (0.2.1)

当我 docker-compose up 它给了

我是 ruby​​ 和 docker 新手,欢迎提出任何建议。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby docker


    【解决方案1】:

    您会看到它,因为在您的系统中您有一个 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 - 检查容器内的宝石
    docker exec <container name\id> bundle install - 在容器内安装宝石
    你可以阅读它 here

    【讨论】:

    • 要查找容器名称/ID,您需要运行 docker ps
    • 你的意思是bundle install 在第二行吗?
    • 是的,我的 docker 容器中的 gem 列表也显示了 Earnshark_sdk 0.2.1。我也在那里做了一个捆绑安装。
    • 是的@dendomenko
    • 你能附上你的 docker-compose.yml 和 Dockerfile 吗?
    【解决方案2】:

    回答我自己的问题,

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

    在 docker-compose.yml 中添加卷挂载

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 2017-07-17
      • 2018-02-09
      • 2014-05-26
      • 2014-03-14
      • 2013-03-13
      • 2019-05-07
      • 2016-02-17
      相关资源
      最近更新 更多