LoginSignup
17
16

More than 3 years have passed since last update.

【環境構築】docker-compose upで「WARNING: Found orphan containers (...) for this project. ...」が表示されたので「-p」でプロジェクト名をつけてみた。

Posted at

どうも、たかふみです。
dockerを使って環境構築をしようとdocker-compose upしたところ、下記メッセージが出てきました。

MacBook-Pro:env moriyama$ docker-compose up --build
WARNING: Found orphan containers (app_go, env_web_1, env_db_1, env_mysql_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Building bot_wordwolf
Step 1/11 : FROM alpine

今回はこの「Found orphan containers」について調べてみました。

「orphans」とは何か調べてみる。

↓のstackoverflowに全部書いてありました。

docker compose orphan containers warning
https://stackoverflow.com/questions/50947938/docker-compose-orphan-containers-warning

どうやら、docker-compose.ymlでコンテナを生成する際につけられるコンテナ名はディレクトリ名を使ってつけられるようです。僕の場合、env\docker-compose.ymlのディレクトリ構造で環境構築することが多いため、「env_web/ env_db/env_mysql」というコンテナが量産されてしまい、他のプロジェクトで生成したコンテナ名と競合して今回のWARNINGが表示されていたようです。

参考にしたstackoverflowで解決策として記載されていたのが、プロジェクト名をつけるというもの。
オプション 「-p」を使うことでつけられるとのことです。

docker-compose [-f <arg>...] [options] [--] [COMMAND] [ARGS...]

これでupしてみましょう。

MacBook-Pro:env moriyama$ docker-compose -p wordwolf up -d
Creating network "wordwolf_default" with the default driver
Building bot_wordwolf
Step 1/11 : FROM alpine

WARNINGが出ずに作成が始まっている!

そのほかにも「COMPOSE_PROJECT_NAME」という環境変数で指定をする方法や、docker-comose.ymlファイルと同ディレクトリに.envファイルを配置して「COMPOSE_PROJECT_NAME=myproject」を指定する方法もあるようです。

まとめ:-pでプロジェクト名をつける方法もある

今回は参考にしたサイトで書かれていた方法を試しましたが、WARNINGメッセージに表示されている--remove-orphansをつけて実行すれば今回のWARNINGは表示されずコンテナが起動できるので、特に理由がなければメッセージの通り、--remove-orphansをつけての実行で良さそうです。

■docker docsより

--remove-orphans
→Remove containers for services not defined in the Compose file.
引用:https://docs.docker.com/compose/reference/up/

僕は開発環境を作るときは、{プロジェクト名をつけたディレクトリ}\env\docker-compose.ymlの構成が多いので、プロジェクト名をつけたいときは-pdocker-compose upすると良さそうです。

それでは!

※12/27追記
「-p」をつけてupしたら、docker-compose psでdocker-compose.yml内に記載したコンテナが表示されない。docker psだと表示されなくなりました。-pつけると同一ネットワークのコンテナとして認識されないのでしょうか? こちらについては調査中です。

参考:

・docker compose orphan containers warning
https://stackoverflow.com/questions/50947938/docker-compose-orphan-containers-warning

・docker-compose up
https://docs.docker.com/compose/reference/up/

17
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
16