dockerfileで親ディレクトリを参照したい!
2425 ワード
はじめに
会社の研修で詰まったところをメモ程度に書いていく
やりたかったこと
以下のようなディレクトリ構造の時、dokerfileから親ディレクトリのindex.htmlをCOPYしたかった
ディレクトリ構造
content/
│
├ .infrastructure/
│ ∟ dockerfile
│
├ files/
∟ index.html
dockerfile
FROM: nginx:latest
COPY: ../files/ /usr/share/nginx/html
WORKDIR /usr/share/nginx/html
これで.infrastructureディレクトリで docker build
を実行。
実行結果
.infrastructure $ docker build . -t docker-html
-- 実行結果 --
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM nginx:latest
---> 9beeba249f3e
Step 2/2 : COPY ../files/ /usr/share/nginx/html
COPY failed: Forbidden path outside the build context: ../files/ ()
このようにCOPY failed: Forbidden path outside the build context: ../files/ ()
と表示され親ディレクトリを参照できない
解決方法
-f オプションを使って、content
ディレクトリからdocker build
コマンドを実行する
以下の通り
# docker build -f [dockerfileの指定] -t [イメージ名] [イメージを作成する時に参照するディレクトリ]
$ docker build -f .infrastructure/dockerfile -t image_name .
注意点
最後の.
忘れないように!
今回の場合はカレントディレクトリからimageを作成するため.
。
まとめ
dockerfileから別のディレクトリのファイルを参照することはできない。
なので、親ディレクトリから-fオプションを用いてコマンドを実行すれば良い。
Author And Source
この問題について(dockerfileで親ディレクトリを参照したい!), 我々は、より多くの情報をここで見つけました https://qiita.com/hgaiji/items/f0246e1ec12682a78a93著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .