linux - Docker 构建失败并显示 "RUN: command not found"

标签 linux docker dockerfile

我在 dockerfile 中运行以下内容,它一直运行到安装 yum 并失败,因为/bin/sh: RUN: command not found

Docker文件:

FROM amazonlinux:latest
ADD . /tmp/
RUN yum install gzip -y && \
    yum install tar -y && \
    yum install libstdc++.so.6 -y && \
RUN cd /tmp && /usr/bin/gunzip TeradataToolsAndUtilitiesBase__linux_indep.16.20.10.00.tar.gz && /usr/bin/tar -xvf TeradataToolsAndUtilitiesBase__linux_indep.16.20.10.00.tar 
RUN cd /tmp/TeradataToolsAndUtilitiesBase/ && ./setup.bat a
CMD ["/bin/bash"]

错误:

Installed:
  libstdc++.i686 0:7.3.1-5.amzn2.0.2                                            

Dependency Installed:
  glibc.i686 0:2.26-32.amzn2.0.1         libgcc.i686 0:7.3.1-5.amzn2.0.2        

Complete!
/bin/sh: RUN: command not found
The command '/bin/sh -c yum install gzip -y &&     yum install tar -y &&     yum install libstdc++.so.6 -y && RUN cd /tmp && /usr/bin/gunzip TeradataToolsAndUtilitiesBase__linux_indep.16.20.10.00.tar.gz && /usr/bin/tar -xvf TeradataToolsAndUtilitiesBase__linux_indep.16.20.10.00.tar' returned a non-zero code: 127
system:ttudockerimg$

请帮忙。

最佳答案

只需使用一个RUN 命令,并转义换行符。如果您有多个命令,则必须将它们包装在一个 bash 命令中。

除此之外,您可以直接从 .tar.gz 文件中提取,而无需先解压。

FROM amazonlinux:latest 
ADD . /tmp/ 
RUN yum install gzip -y && \ 
    yum install tar -y && \ 
    yum install libstdc++.so.6 -y && \
    /bin/bash -c 'cd /tmp && \
    /usr/bin/tar -xzvf TeradataToolsAndUtilitiesBase__linux_indep.16.20.10.00.tar.gz && \
    cd /tmp/TeradataToolsAndUtilitiesBase/ && \
    ./setup.bat a 
CMD ["/bin/bash"]

关于linux - Docker 构建失败并显示 "RUN: command not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54564342/

相关文章:

linux - 通过用户空间 I/O (UIO) Linux 驱动程序与 QEMU edu 设备连接

Dockerfile 镜像构建 : "RUN wget" inside the Dockerfile results in partial file download, 但构建完成且没有错误

mysql - Sails 不会填充大型查询

jetty - dockerized jetty 在哪里存储日志?

linux - 仅当脚本退出代码为 1 时,带有 shell 脚本的 incrond 进程才会退出?

linux - Bash:为什么我不能为变量分配绝对路径?

安卓文件系统

docker - 检查由于存储限制而未完全提取的 Docker 镜像

python - 如何正确缓存 Python 依赖项

bash - 在Docker中运行两个可执行文件