docker-compose v2.18.0のvizサブコマンド

2023年5月16日にdocker-composeのv2.18.0が公開されました。いくつかの機能拡張もあるのですが、その一つに、vizサブコマンドがあります。

vizサブコマンドは、docker composeのalphaコマンドのサブコマンドとして提供されています。alphaですから、EXPERIMENTAL FEATURE(実験的な機能)の位置付けとなります。

具体的な内容は、Pull Request #10376で見ることができますが、次のように実行することができます。前提条件として、graphvizパッケージにあるdotコマンドを使いますから、事前にインストールしておきます。

$ sudo apt install -y graphviz

上記のプルリクエストでサンプルとして上げられているのが、次のdocker-composeファイルになっています。

version: "3.9"
services:
  service1:
    image: guzmanbenjamin/service1
    networks:
      - internal-net

  service2:
    image: guzmanbenjamin/service2
    networks:
      - internal-net
    depends_on:
      - service1
      - postgres
      - mongo

  postgres:
    image: postgres
    networks:
      - internal-net

  mongo:
    image: mongo
    command: --auth
    networks:
      - internal-net

  gateway:
    image: nginx
    ports:
      - "127.0.0.1:80:80"
      - "443:443"
    networks:
      - internal-net
      - public-net
    depends_on:
      - service1
      - service2

networks:
  internal-net:
    external: true
  public-net:
    driver: bridge
    enable_ipv6: true

このファイルを用意したら、次のようにコマンドを実行することができます。

$ docker compose alpha viz –ports –networks | dot -Tpng -O

ここでは、docker composeからDOT言語で出力された内容を、dotコマンドでpng形式に変換しています。出力ファイル名を指定することもできるのですが、ここでは自動生成としています。この場合には、noname.gv.pngというファイル名で出力されていますから、PNGファイルとして表示すると次のようになります。

docker-compose.ymlファイルに書かれているサービス群をグラフ表示することができました。内容としては、プルリクエストにあるものと同じですが、手元でdocker composeを実行して出力したものとなっています。

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!
目次