当前位置: 首页 > 知识库问答 >
问题:

构建Dockerfile时linux source命令不起作用

仇正豪
2023-03-14

我有一个定义Ruby on Rails堆栈的Dockerfile。

FROM ubuntu:14.04
MAINTAINER example <examplen@example.com>

# Update
RUN apt-get update

# Install Ruby and Rails dependencies
RUN apt-get install -y \
ruby \
ruby-dev \
build-essential \
libxml2-dev \
libxslt1-dev \
zlib1g-dev \
libsqlite3-dev \
nodejs \
curl

RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

RUN curl -sSL https://get.rvm.io | bash -s stable --rails

RUN /bin/bash -c "source /usr/local/rvm/scripts/rvm"

# Install Rails
RUN gem install rails

# Create a new Rails app under /src/my-app
RUN mkdir -p /src/new-app

RUN rails new /src/new-app

WORKDIR /src/my-app

# Default command is to run a rails server on port 3000
CMD ["rails", "server", "--binding", "0.0.0.0", "--port" ,"3000"]

EXPOSE 3000

我不知道为什么会这样。

共有1个答案

赵驰
2023-03-14

在docker builder参考中,每个RUN命令都是独立运行的。因此,执行RUN source/usr/local/rvm/scripts/rvm不会对下一个RUN命令产生任何影响。

尝试更改需要给定源文件的操作,如下所示

  RUN /bin/bash -c "source /usr/local/rvm/scripts/rvm ; gem install rails"
 类似资料:
  • 是否可以从Dockerfile构建映像并使用单个命令运行它 有一个命令来构建Dockerfile,还有来运行映像。 有没有这两个命令的任何组合,使它更容易构建和运行只有一个命令?

  • 我只是在Windows中安装jdk和jre版本8。环境变量已设置。我尝试在cmd中运行“java-version”,它显示了安装的java版本。但是当我尝试用“javac projectname”编译java项目时,系统说javac不能被识别为内部命令或外部命令。有谁能告诉我怎么修好它吗? 下面是我的环境变量: C:\users\foody>echo%路径%C:\ProgramData\Oracl

  • 当我试图用Dockerfile构建自己的docker图像时,我发现在使用添加或复制命令后,文件没有复制到我的图像中。 为了测试ADD命令,我创建了一个简单的dockerfile,如下所示: 我的文件结构很简单,如下所示: 当我使用docker build命令构建图像时,过程如下: 该过程以cat命令未找到测试结束。我用dockerfile脚本将txt添加到图像中。 这让我很困惑,我在不同的环境下尝

  • 问题内容: 我正在运行Ubuntu 10.10 64位。我安装了ia32-libs以及Android Debug Bridge版本1.0.26。 我的问题: >>> ???????????? 没有权限 >>>> sudo:adb:找不到命令 >>>错误:设备权限不足 我想这些都有关。这是相关信息。 使用运行CM6.1的植根Moto Droid和运行基于CM7的ROM植根的G-Tab,可以得到相同的

  • 我试图在一个网站上使用gettext,为此我遵循O'Reilly媒体教程。在第一页的末尾,它说我需要使用命令,但是我的命令行返回以下内容:我在XAMPP上运行我的网站,所以我的整个目录是这样的: 我有考试。php在gettext文件夹中,以及消息。采购订单位于文件夹中。即使我尝试使用poedit,它也不起作用。这是我的测验。php代码: 我不确定bindtextdomain函数中的字符串是否正确。