2017-07-30 38 views
0

ファイルをApacheのhtdocsフォルダに移動しようとしています。私のファイルをドッカーのコンテナにコピーできないのはなぜですか?

FROM httpd:2.4 
MAINTAINER Ankit 
COPY ./public-html/ /usr/local/apache2/htdocs/ 

しかし、COPYコマンドは、コンテナにファイルをコピーされていません。 は彼女の私のdockerfileは次のようになります。 がここに出力だ - のindex.htmlはデフォルトであり、私がコピーしようとしていることは、公共-htmlのフォルダです:

[email protected]:/usr/local/apache2/htdocs# ls 
index.html 

は、私が欠けているものはありますか?

更新: public-htmlフォルダはコピーされませんが、ファイルindex.htmlがコピーされていますが、そのような動作の理由は何ですか?

UPDATE2:ここに私の最新のドッカーファイル、コンテナをビルドして実行するコマンドがあります。

Dockerfile: 
FROM httpd:2.4 
MAINTAINER Ankit 
COPY public-html/ /usr/local/apache2/htdocs/public-html/ 

docker build -f Dockerfile -t apache . 
docker run -d --name apws -v /Users/ankitsahu/workspace/docker_practi 
ce/public-html:/usr/local/apache2/htdocs/ -p 80:80 apache 

と私は、execコマンドを使用してコンテンツをチェックする場合:あなたがroot以外の別のディレクトリへCOPYファイルは、あなたがそれらを作成することができます前に

[email protected]:/usr/local/apache2/htdocs# ls -a 
. .. index.html sample.html try 

答えて

0

あなたは、次を使用し、.../htdocs/public-html/ディレクトリを持っているディレクトリ/usr/local/apache2/htdocsにディレクトリpublic-htmlをコピーしようとしている場合:

COPY public-html/ /usr/local/apache2/htdocs/public-html/ 

デフォルトでは、ディレクトリをコピーするので、そのディレクトリの内容をコピーしますディレクトリ内にその名前を付けて表示する必要があります。


編集:あなたの実行コマンドは、このディレクトリの画像の内容を置き換えますボリュームが含まれています

docker run -d --name apws -v /Users/ankitsahu/workspace/docker_practice/public-html:/usr/local/apache2/htdocs/ -p 80:80 apache 

あなたは、画像内にあるものを見たい場合は、ボリュームを使用しないでください。

docker run -d --name apws -p 80:80 apache 

代わりに、ボリュームを使用する場合は、ドッカーホストの/ Users/ankitsahu/workspace/docker_practice/public-htmlの内容を変更します。

+0

これでもpublic-htmlフォルダをコンテナにコピーしていません。 –

+0

新しい画像を作成してコンテナを実行するために実行する手順を含めてください。 – BMitch

+0

Dockerfile:httpdのFROM :2.4 MAINTAINER Ankit COPY公共-HTML /は/ usr/local/apache2の/ htdocsに/公共-HTML/ ドッキングウィンドウのビルド-f -t Dockerfile apacheの。 ドッカー実行-d --name apws -v /ユーザー/ ankitsahu/workspace/docker_practi ce/public-html:/ usr/local/apache2/htdocs/-p 80:80 apache execコマンド: root @ b54e53a231b7:/ usr/local/apache2/htdocs#ls -a 。 .. index.html sample.html try –

0

を。

dest_pathには存在し、ディレクトリであるとすれば、以下の

FROM httpd:2.4 MAINTAINER Ankit 
MKDIR -p /usr/local/apache2/htdocs/ # Create the directory with '-p' option. 
COPY ./public-html/ /usr/local/apache2/htdocs/ 

編集ドキュメントDocker CP Commandに基づいて1

にごDockerfileを更新

SRC_PATHがない場合/で終わらない。 (つまり、スラッシュとドットで始まる) ソースディレクトリがこのディレクトリにコピーされます。

SRC_PATHは/で終わります。 (つまり:ドットスラッシュ)ソースディレクトリの内容がスラッシュで終わらないあなたの場合/public-html/では、このディレクトリ

にコピーされ 、これだけの内容がコピー取得しておく必要があります。 ./public-htmlに更新すると問題が解決するはずです。

これが役に立ちます。

+0

htdocsフォルダはすでに存在していますが、htdocs内には作成されていないpublic-htmlフォルダです。 –

+0

ああ!質問を誤解する。 COPYを 'COPY public-html/usr/local/apache2/htdocs /' – krisnik

+0

に変更してください。それはどちらもうまくいかなかった。 + ./public-html/は、プロジェクトのルートからの相対パスを指定する必要があります。 –

関連する問題