LoginSignup
1
0

More than 1 year has passed since last update.

`docker-compose up`で"Attaching to"と表示されたままになる時はコンテナの起動方法が異なるかも。profilesでコンテナの属性を設定する。

Posted at

Dockerコンテナを起動しようとしたところ、docker-compose up -dでコンテナが起動しない、ということがありました。分かってみれば簡単なことだったのですが、少し詰まったので記事にしておきます。

内容

> docker-compose build --no-cache # 何も起きない
> docker-compose up # Attaching to と表示されたっきり反応無し
  Attaching to

原因・解決策

コンテナ起動方法が違いました。
コンテナの設定に「profiles」を使用しているため、それに合わせてコマンドを実行する必要がありました。

> docker-compose --profile web up -d
Starting mockApi ... done
Starting app    ... done
Starting nginx ... done

開発に用いていた「docker-compose.yml」は他の方が作成したものだったので、「profiles」設定がされていることを把握できていませんでした。また、コンテナの起動もDocker DesktopのGUI上から行っており、コマンドでのコンテナ起動方法を把握できていなかったのも原因です。

profilesとは?

dockerではコンテナの属性情報を「profiles(プロファイル)」として設定することができます。

例えば、フロントエンドの開発に関わるコンテナはfrontend、バックエンドの開発に関わるコンテナはbackendのように設定することができます。profilesを設定しなければ常に起動するので、他コンテナにも関わるコンテナであれば設定しない方が良いです。

参考
Compose でのプロファイル利用
https://matsuand.github.io/docs.docker.jp.onthefly/compose/profiles

上記の中で今回引っかかったのが以下の2点でした。

  1. docker-compose up する際に有効にするprofilesを指定する
  2. プロファイルが有効になっていない場合はコンテナが起動できない
    depends_onで他コンテナに依存している場合は、そちらのコンテナで指定されているprofilesも有効にする必要がある。

まとめ 起動しない時はdocker-compose.yml, Dockerfileを確認する

コンテナが起動しない時はymlファイルやDockerfileを確認しましょう。(自戒)
dockerは長いこと使っていますがprofilesは知らなかったので、今度使ってみようと思います。

それでは!

1
0
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
1
0