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-depsinstallではなくinstall-depsとすれば依存関係だけをインストールすることができます。
その後、コンテナ内のプロジェクトでnpx playwright installを実行すれば、Playwrightがインストールできます。
実行
コンテナ内のプロジェクトでnpm playwright testを実行すればテストが行われます。
依存関係のインストールを管理者権限で行う必要があったので、イメージ作成時に依存関係だけをインストールする方法で導入しました。
課題
codegenなど、GUIを表示するコマンドは今の状態では行うことができません。
GUIを表示できるようにする方法はDockerコンテナでPlaywrightのcodegenを実行する方法で紹介しています。