Closed1

Dockerコンテナ上で動かしているplaywrightコンテナの失敗レポートを、ホストからでもアクセスできるようにする

miroscularmiroscular

まず、コンテナの中に入ってportが開放されているかチェックする。

ssコマンドを使いたいので、

apt install iproute2

ss -tulnコマンドを実行

root@a2b84a5c5767:~/e2etest# ss -tuln
Netid      State       Recv-Q      Send-Q           Local Address:Port            Peer Address:Port      Process      
udp        UNCONN      0           0                   127.0.0.11:40299                0.0.0.0:*                      
tcp        LISTEN      0           511                  127.0.0.1:9323                 0.0.0.0:*                      
tcp        LISTEN      0           4096                127.0.0.11:33707                0.0.0.0:* 

9323番が、playwrightが使っているポートだが、localhostでしかアクセスできないことがわかるので、
開発環境では0.0.0.0 などで開放できるようにしたい。

https://playwright.dev/docs/release-notes#other-highlights
こちらのリンクにHTML reporterのポート設定のやり方について説明があるので、

    reporter: [['html', { host: '0.0.0.0', port: '9323' }]],

こんな感じで編集してみる。

すると、playwright失敗時に

  Serving HTML report at http://0.0.0.0:9323. Press Ctrl+C to quit.

こうなるので、localhost:9323でアクセスすると...見事表示された。

もちろん、dockerコンテナの起動時には、ホスト:コンテナのポートを開放するオプションが必要。

docker compose run --rm -p9323:9323 playwright npx playwright test tests

こんな感じになる。

ホスト側から疎通確認したかったら、docker psコマンドを叩いて

CONTAINER ID   IMAGE                          COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
36b625c017b5   playwright              "npx playwright test…"   13 minutes ago   Up 13 minutes   0.0.0.0:9323->9323/tcp, :::9323->9323/tcp                                              playwright-run-20e0d05f798d

9323に通ってることがわかる。

このスクラップは2023/08/23にクローズされました