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
Docker-在构建时安装的Ruby依赖项在容器启动时不可用_Ruby_Docker_Dockerfile - Fatal编程技术网

Docker-在构建时安装的Ruby依赖项在容器启动时不可用

Docker-在构建时安装的Ruby依赖项在容器启动时不可用,ruby,docker,dockerfile,Ruby,Docker,Dockerfile,我正在Dockerfile中运行以下命令: 在我的entrypoint.sh中,我正在运行bundle安装。但这是一个错误: 未找到捆绑包 经过进一步调查,我发现Docker构建期间安装的依赖项在容器运行时似乎都不可用。我可能错过了一些非常基本的东西。非常感谢您的帮助。entrypoint.sh不加载rvm,因此它看不到rvm安装的Ruby或其捆绑程序 通过添加,在entrypoint.sh中加载rvm/etc/profile.d/rvm.sh和rvm使用。。在使用Ruby之前。您的入口点是否加

我正在Dockerfile中运行以下命令:

在我的entrypoint.sh中,我正在运行bundle安装。但这是一个错误:

未找到捆绑包

经过进一步调查,我发现Docker构建期间安装的依赖项在容器运行时似乎都不可用。我可能错过了一些非常基本的东西。非常感谢您的帮助。

entrypoint.sh不加载rvm,因此它看不到rvm安装的Ruby或其捆绑程序


通过添加,在entrypoint.sh中加载rvm/etc/profile.d/rvm.sh和rvm使用。。在使用Ruby之前。

您的入口点是否加载rvm?您是指源rvm吗?我的建议是使用ruby:2.5-alpine3.7之类的东西,而不是在docker构建期间通过rvm安装ruby。这就是为什么,如果entrypoint没有使用rvm安装的ruby,它将看不到任何ruby或捆绑包。我确实尝试过。它像黄油一样起作用。但官方ruby图像中存在安全漏洞,因此无法使用。我不能使用ruby 2.5,必须坚持使用ruby 2.3。
    RUN apt-get update && apt-get -y install gnupg2

    RUN gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
    RUN curl -sSL https://get.rvm.io | bash -s
    RUN /bin/bash -l -c ". /etc/profile.d/rvm.sh && rvm install 2.3.1 && rvm use --default 2.3.1 && gem install bundler"
    # some more code
    ENTRYPOINT ["/entrypoint.sh"]