🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

7693閲覧

docker-compose upが失敗するので解決したい。

whoiwhoi

総合スコア48

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/01/13 12:24

編集2021/01/14 01:23

前提・実現したいこと

docker-compose upを実行すると次項のエラーが表示されるため、エラーを解決したいです。

ディレクトリは下記の構成になっています。

. ├── nginx │ ├── nginx.conf │ └── Dockerfile ├── hoge │ ├── fuga │ └── Dockerfile └── docker-compose.yml

発生している問題・エラーメッセージ

ERROR: Service 'nginx' failed to build : COPY failed: file not found in build context or excluded by .dockerignore: stat nginx.conf: file does not exist

該当のソースコード

docker-compose.yml

yml

1services: 2 web: 3 build: ./hoge 4 ... 5 nginx: 6 build: 7 context: ./ 8 dockerfile: ./nginx/Dockerfile 9 depends_on: 10 - web 11 ports: 12 - "80:80"

nginxのDockerfile 

Dockerfile

1FROM nginx:latest 2 3COPY nginx.conf /etc/nginx/nginx.conf 4# 追記 5COPY ../hoge/static /static 6...

試したこと

エラーをGoogle翻訳で翻訳しました。

エラー:サービス 'nginx'のビルドに失敗しました:コピーに失敗しました:ファイルがビルドコンテキストに見つからないか、.dockerignoreによって除外されました:stat nginx.conf:ファイルが存在しません

上記から、nginx.confが見つからないためにエラーになっていると思うのですが、nginx.confは存在します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

nginx: build: context: ./ dockerfile: ./nginx/Dockerfile

context を./ にしてるから、nginx.confが見つからないんじゃないでしょうか。

素直に↓だとどうでしょうか?

nginx: build: ./nginx

投稿2021/01/13 16:43

umau

総合スコア831

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

whoiwhoi

2021/01/14 01:28

ご回答いただきありがとうございます。本文に無い事項で申し訳ないのですが、nginxのDockerfileで親ディレクトリを渡ってCOPYするコマンドを仕込んでいるため、buildをそのように書いています。(質問文のDockerfileのコードに追記しました。)以上の場合、build: ./nginx で実行すると、次のエラーメッセージ が表示されます。Service 'nginx' failed to build : COPY failed: forbidden path outside the build context: ../hoge/static ()
umau

2021/01/14 04:38

COPY nginx.conf /etc/nginx/nginx.conf ↓ COPY nginx.conf /etc/nginx/ もしくは COPY ./nginx/nginx.conf /etc/nginx/ これだとどうですか?
whoiwhoi

2021/01/14 07:04 編集

ご教示いただきありがとうございます。一つ目の方法ですと質問文に記載のエラー(nginx.confが見つからない旨)が表示され、二つ目の方法ですと私の一つ前のコメントに記載のエラー(親ディレクトリを渡れない旨)が表示されました。
umau

2021/01/14 07:25

私の環境だと、 ```docker-compose.yml php: build: context: ./ dockerfile: ./php/Dockerfile ``` ```Dockerfile COPY ./php/php.ini /usr/local/etc/php/ ``` これでファイルコピーは成功しているぽいですよ。 上のコメントの ../hoge/static は、その次のCOPYの話ですよね。 hogeがdocker-compose.ymlと同じ階層にあるフォルダなら、 ../hoge/static ではなく、./hoge/static じゃないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問