zukucode
主にWEB関連の情報を技術メモとして発信しています。

Dockerコンテナ内のプロジェクトにPlaywrightを導入する方法

Dockerコンテナ内で開発しているプロジェクトにPlaywrightを導入する方法を紹介します。

Playwrightが公式で用意しているDockerコンテナのイメージを使うのではなく、現在使用しているコンテナの環境に導入します。

基本的には公式ページで紹介しているとおり、コンテナ内でnpx playwright installを実行すれば導入できるのですが、ブラウザなどの依存環境もインストールするため、コンテナの環境によっては権限エラーが発生してしまいました。

そのため、ブラウザなどの依存関係だけは、あらかじめコンテナのイメージを作成するときにインストールします。

Dockerfileの修正

DockerfilePlaywrightの依存関係だけをインストールするように以下の処理を追加します。

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を実行する方法で紹介しています。


関連記事