ruby-on-rails - 如何链接 Dockerfile 中的文件?

标签 ruby-on-rails docker

我正在尝试创建一个将部署 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/

中创建符号链接(symbolic link)
RUN ln -sf /proc/self/fd /dev/

关于ruby-on-rails - 如何链接 Dockerfile 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621094/

相关文章:

mysql - 相关元素的 ActiveRecord 查询

javascript - 在我的 View 页面中实现两个选择

laravel -/bin/sh:1: Composer :找不到

ruby-on-rails - 计数/总和等的最佳数据库实践

mysql - ActiveRecord/MySQL 查询以返回分组的对象集

php - 在Docker容器中运行laravel环境

linux - 向所有容器公开端口,而不仅仅是主机

java - 为 docker 图像版本控制清理版本。星云释放

docker - docker devicemapper数据文件大小呈指数增长,并占用了我的主机磁盘的90%

ruby-on-rails - Rails - 缓存外部 HTTP 调用