n8n

Docker環境にてn8n version2でpuppeteerを使う方法

puppeteerを使うには、chromiumが必要なんですが、n8nが配布しているイメージには含まれていません。
それだけならイメージにchromiumをインストールするだけでいいんですが、最新のイメージでは、イメージサイズの削減とセキュリティ強化のために、Alpine Linuxのパッケージマネージャーであるapkが削除されています。

これはn8nのコンテナイメージには新しいパッケージをインストールするなということです。

そこでどうするかというと、n8nのコンテナとは別に、Chromium/Browserlessコンテナを立てることです。
そして、puppeteerからそのコンテナへwebsocket経由で接続します。

設定手順

1.docker-compose.ymlの作成

n8nとChromium(browserless/chrome)を同じDockerネットワーク内で動かすのが最も簡単です。

services:
  n8n:
    image: n8nio/n8n:latest
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - chrome
    networks:
      - n8n-net

  chrome:
    image: browserless/chrome:latest
    ports:
      - "3000:3000"
    environment:
      - MAX_CONCURRENT_CHROME=10
      - DEBUG=browserless:*
    networks:
      - n8n-net

networks:
  n8n-net:
    driver: bridge

volumes:
  n8n_data:

docker compose up -d –buildで起動します。
ブラウザでhttp://localhost:5678にアクセスして初期ユーザー登録をすませます。

2.n8n Puppeteerのインストール

ブラウザで作業します。
Settings(サイドバーの歯車)→ Community nodes → Install…をクリックします。
npm Package Nameにn8n-nodes-peppeteerを入力し、チェックボックスにチェックをいれてinstallをクリックします。

2.n8n Puppeteer ノードの設定

URLにアクセスしたいURLを入力します。
Add Optionで、Browser WebSocket Endpointを追加します。
Execute stepで実行して確認します。
成功するとOUTPUTに表示されます。