Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 自定义本地gem:Bundler::GemNotFound:找不到gem_Ruby On Rails_Ruby_Docker_Rubygems - Fatal编程技术网

Ruby on rails 自定义本地gem:Bundler::GemNotFound:找不到gem

Ruby on rails 自定义本地gem:Bundler::GemNotFound:找不到gem,ruby-on-rails,ruby,docker,rubygems,Ruby On Rails,Ruby,Docker,Rubygems,我在创建我的第一块Ruby gem的同时也在关注。在这里描述的步骤4的末尾,有一个文件my_gem-0.0.gem。目前,我希望将这个gem保存在本地,因此我尝试将它放在rails项目根目录下的gems目录中 在Gemfile中,我添加了这一行: gem 'my_gem', path: 'gems' 我们使用Docker,当我尝试启动此容器时,我发现我的新gem未找到: Bundler::GemNotFound: Could not find gem 'my_gem' in the sourc

我在创建我的第一块Ruby gem的同时也在关注。在这里描述的步骤4的末尾,有一个文件
my_gem-0.0.gem
。目前,我希望将这个gem保存在本地,因此我尝试将它放在rails项目根目录下的
gems
目录中

Gemfile
中,我添加了这一行:

gem 'my_gem', path: 'gems'
我们使用Docker,当我尝试启动此容器时,我发现我的新gem未找到:

Bundler::GemNotFound: Could not find gem 'my_gem' in the source at `gems`
The source does not contain any versions of 'my_gem'

我尝试在文件名和
Gemfile
中添加/删除
gem
扩展名和
-0.0.1
部分,但没有任何效果。这里出了什么问题?

要使用Docker,您需要将存储库从github克隆到您的自定义文件夹。在下面的示例中,重现我如何使用自定义路径编辑单独文件夹中的gem的步骤:

  • 在我的本地机器中,我在我的rails应用程序文件夹中使用了一个/gems文件夹:
    mkdir/gems
  • cd/gems
  • git克隆
    。需要克隆,因为如果从计算机中的其他文件夹复制,可能会丢失一些文件
  • gem文件中设置
    gem',路径:'/bundle/custom_gems/'
  • 如果使用docker compose,则需要使用配置绑定文件夹,如下所示:
  • 这样,您的本地文件夹(您的计算机)将/app/gems中的文件复制到Docker容器中的/bundle/custom_gems

  • 重新启动服务
  • 如果不使用docker compose,则需要添加docker文件,例如:
    添加。/app/gems/bundle/custom_gems

    要使用Docker,您需要将存储库从github克隆到您的自定义文件夹。在下面的示例中,重现我如何使用自定义路径编辑单独文件夹中的gem的步骤:

  • 在我的本地机器中,我在我的rails应用程序文件夹中使用了一个/gems文件夹:
    mkdir/gems
  • cd/gems
  • git克隆
    。需要克隆,因为如果从计算机中的其他文件夹复制,可能会丢失一些文件
  • gem文件中设置
    gem',路径:'/bundle/custom_gems/'
  • 如果使用docker compose,则需要使用配置绑定文件夹,如下所示:
  • 这样,您的本地文件夹(您的计算机)将/app/gems中的文件复制到Docker容器中的/bundle/custom_gems

  • 重新启动服务
  • 如果不使用docker compose,则需要添加docker文件,例如:
    ADD./app/gems/bundle/custom_gems

    您可以尝试为
    path
    提供gem文件夹的路径,例如
    路径:“gems/my_gem”
    ?您还验证了docker build上是否存在
    gems/
    文件夹吗?我的代码中的路径似乎是正确的。当我更改它时,错误消息更改为
    路径[…]不存在
    。我怀疑这可能是Docker的问题,因为我意识到我可以在容器内执行
    gem安装--local/var/workdir/gems/my_gem-0.0.1。gem
    运行gem安装--local/var/workdir/gems/my_gem-0.0.1。在
    Dockerfile
    中执行gem会导致与上述类似的错误。您能否尝试给出
    path
    的路径gem文件夹,例如路径:“gems/my_gem”?您还验证了docker build上是否存在
    gems/
    文件夹吗?我的代码中的路径似乎是正确的。当我更改它时,错误消息更改为
    路径[…]不存在
    。我怀疑Docker可能有问题,因为我意识到我可以在容器中执行
    gem安装--local/var/workdir/gems/my_gem-0.0.1。gem
    Docker文件中运行gem安装--local/var/workdir/gems/my_gem-0.0.1。gem
    会导致与上述类似的错误。
    volumes:
        - ./app/gems:/bundle/custom_gems