我正在尝试创建一个将部署 rails 应用程序的 Dockerfile,但我的问题是如果我使用 docker 文件,ruby 将无法安装。它说/dev/fd 丢失。在普通机器上,我所要做的就是输入命令 ln -sf/proc/self/fd/dev/fd
并且一切都已修复。但是,当我将该命令放入 Dockerfile 时,它并没有链接到/dev/fd。这是我的 Dockerfile:
# Select ubuntu as the base image
FROM ubuntu
# Install nginx, nodejs and curl
RUN apt-get update -q
RUN apt-get install -qy nginx
RUN apt-get install -qy curl
RUN apt-get install -qy nodejs
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
# Install rvm, ruby, bundler
RUN curl -sSL https://get.rvm.io | bash -s stable
RUN ln -sf /proc/self/fd /dev/fd
RUN echo "source /usr/local/rvm/scripts/rvm" >> /etc/bash.bashrc
RUN /bin/bash -l -c "rvm requirements"
RUN /bin/bash -l -c "rvm install 2.1.2"
我会收到类似/dev/fd: missing file or folder 之类的错误。如果我省略最后一行,一切都会成功构建,但是当我登录到我刚刚构建的镜像并 cd 进入/dev/fd 时,它说没有这样的文件或目录。为什么它成功构建但没有链接我告诉它的文件?
最佳答案
我已尝试使用您运行的命令,它尝试使 /dev/fs/fs
尝试以下方法在 /dev/
RUN ln -sf /proc/self/fd /dev/
关于ruby-on-rails - 如何链接 Dockerfile 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621094/