You are currently viewing Docker Composeを複数立ち上げる場合はフォルダ名に注意

Docker Composeを複数立ち上げる場合はフォルダ名に注意

趣味で作っているアプリはマイクロサービスを意識して作成しており、機能ごとにDocker Composeでインフラを設定して開発しています。
Docker Composeを2つ立ち上げたとき、最初に立ち上げたDocker Compose内のコンテナが上書きされる事象が発生したので、その対策になります。

結論:複数のDocker Composeを立ち上げるときはフォルダ名をかぶらないようにする

実験します。
以下のようなフォルダ構成で2つのDocker Composeを準備しました。

Docker Composeの中身は以下の通りです。

services:
  db:
    image: mysql:latest
    container_name: db1
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    restart: always
services:
  db:
    image: mysql:latest
    container_name: db2
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    restart: always

起動したときのコンソールは以下の通り
まずはEnv1配下のDocker Compose を起動します

続いてEnv2配下のDocker Composeを起動します

このときに起動しているコンテナをDocker Desctopのダッシュボードから確認します

Env2環境のDBしか起動していないことがわかりました

フォルダ名を変更して再度起動してみる

dbというフォルダ名が被っていたため、db1、db2に名前を変更しました。

それぞれの起動ログは以下になります

Docker Desktopのダッシュボードで確認します

無事に2つのDocker Composeが立ち上がりました。
ということで、Docker Composeを複数立ち上げるときは、docker-composeファイルが実行されているフォルダ名がかぶらないように注意が必要です。

てっきりコンテナ名だけかぶらないようにしておけばいいと思っていたので、変なところでハマりました。

コメントを残す