Dockerコンテナ内のプロジェクトにPlaywrightを導入する方法
Docker
コンテナ内で開発しているプロジェクトにPlaywright
を導入する方法を紹介します。
Playwright
が公式で用意しているDocker
コンテナのイメージを使うのではなく、現在使用しているコンテナの環境に導入します。
基本的には公式ページで紹介しているとおり、コンテナ内でnpx playwright install
を実行すれば導入できるのですが、ブラウザなどの依存環境もインストールするため、コンテナの環境によっては権限エラーが発生してしまいました。
そのため、ブラウザなどの依存関係だけは、あらかじめコンテナのイメージを作成するときにインストールします。
Dockerfileの修正
Dockerfile
にPlaywright
の依存関係だけをインストールするように以下の処理を追加します。
Dockerfile
# nodejsがない場合はこの処理も追加
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - \
&& apt-get install -y nodejs
# playwrightの依存関係だけをインストール
RUN npx playwright install-deps
install
ではなくinstall-deps
とすれば依存関係だけをインストールすることができます。
その後、コンテナ内のプロジェクトでnpx playwright install
を実行すれば、Playwright
がインストールできます。
実行
コンテナ内のプロジェクトでnpm playwright test
を実行すればテストが行われます。
依存関係のインストールを管理者権限で行う必要があったので、イメージ作成時に依存関係だけをインストールする方法で導入しました。
課題
codegen
など、GUIを表示するコマンドは今の状態では行うことができません。
GUIを表示できるようにする方法はDockerコンテナでPlaywrightのcodegenを実行する方法で紹介しています。