2016-12-22 4 views
1

私はauditserverをnodejsサーバにインストールしたいと思います。それは手動の手順として正常に動作しています。RPMでのドッカーファイルの問題

以下のようなDockerファイルを作成します。

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 

ドッカーファイルを構築しているうちに、以下の問題があります。

[email protected]:/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 
[email protected]:/tmp/sky-test# 

完全なDockerfileを作成するための任意の助けができます。ありがとう。

答えて

0

rpmコマンド(ステップ7)を実行すると、/optディレクトリに存在しないという問題があります。なぜ起こるのか調べるには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 
関連する問題