【问题标题】:Dockerfile issue with RPMRPM 的 Dockerfile 问题
【发布时间】:2017-05-07 21:52:48
【问题描述】:

我想在 nodejs 服务器上安装 auditserver,所以我的 auditserver 带有 rpm 。它作为手动步骤工作正常。

我写了一个像下面这样的 Dockerfile。

FROM    centos:centos6

# Enable EPEL for Node.js
RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

# Install Node.js and npm
RUN yum install -y npm

# ADD rpm into container
ADD auditserver-1-1.x86_64.rpm /opt/

RUN mkdir -p /opt/auditserver

RUN cd /opt

RUN rpm -Uvh auditserver-1-1.x86_64.rpm

# cd to auditserver
RUN cd /opt/auditserver

# Install app dependencies
RUN  npm install
# start auditserver
RUN node server

EXPOSE  8080

在构建 docker 文件时,我看到了以下问题。

root@CloudieBase:/tmp/sky-test# docker build -t sky-test .
Sending build context to Docker daemon  38.4 kB
Step 1 : FROM centos:centos6
 ---> 9c95139afb21
Step 2 : RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
 ---> Using cache
 ---> fd5b1bb647fc
Step 3 : RUN yum install -y npm
 ---> Using cache
 ---> b7c2908fc583
Step 4 : ADD auditserver-1-1.x86_64.rpm /opt/
 ---> 26ace798f98c
Removing intermediate container 5ea6221797f5
Step 5 : RUN mkdir -p /opt/auditserver
 ---> Running in 8f7292364245
 ---> 9b340033f6b7
Removing intermediate container 8f7292364245
Step 6 : RUN cd /opt
 ---> Running in c7d20fd251f3
 ---> 0cdf90b6cb2e
Removing intermediate container c7d20fd251f3
Step 7 : RUN rpm -Uvh auditserver-1-1.x86_64.rpm
 ---> Running in 4473241e5077
error: open of auditserver-1-1.x86_64.rpm failed: No such file or directory
The command '/bin/sh -c rpm -Uvh auditserver-1-1.x86_64.rpm' returned a non-zero code: 1
root@CloudieBase:/tmp/sky-test# 

可以帮助制作完美的 Dockerfile。谢谢。

【问题讨论】:

    标签: dockerfile


    【解决方案1】:

    问题是执行rpm命令时你不在/opt目录下(第7步)。请参阅this answer 了解它发生的原因。引用:

    每次运行时,都会生成一个新容器,因此 pwd 是“/”。

    有关如何修复它,请参阅this question。总结一下:你可以使用WORKDIR dockerfile 命令或者更改这部分:

    RUN cd /opt
    RUN rpm -Uvh auditserver-1-1.x86_64.rpm
    

    到这里:

    RUN cd /opt && rpm -Uvh auditserver-1-1.x86_64.rpm
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-12
      • 2021-01-20
      • 2017-11-22
      • 2011-10-20
      • 2014-01-24
      • 2013-08-09
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多