browser-use web-uiをCloud Runで動かす
はじめに
本記事では、browser-useのweb-uiをCloud Runへデプロイすることで、ローカル以外でも試せるようにします。
browser-useとは?
browser-useは、ブラウザの自動的な操作をAIエージェントを活用して行うライブラリです。
browser-useの公式リポジトリのexamplesに様々な使い方が紹介されています。
また、Browser-useでollamaを使ってローカルLLMを使用する場合については、以下の記事を書きました。
Cloud Runへのデプロイ手順
試したのは、v1.2
のバージョンです。
Cloud Run APIの有効化
Cloud Run APIを有効にします。
% gcloud services enable run.googleapis.com
ポート番号の変更
また、Cloud Runでの起動を行うため、各種ポート番号を変更します。
DockerfileのEXPOSEに8080を追加。
EXPOSE 7788 6080 5900 8080
supervisord.configのポートを7788から8080へ変更。
[program:webui]
command=python webui.py --ip 0.0.0.0 --port 8080
また、webui.pyのポートを7788から8080へ変更。
parser.add_argument("--port", type=int, default=8080, help="Port to listen on")
Dockerイメージのビルド
browser-use/web-ui のリポジトリのルートディレクトリで、Dockerイメージをビルドします。
[PROJECT_ID]は、利用するGoogle CloudのプロジェクトIDに置き換えてください。
% docker build -t asia-northeast1-docker.pkg.dev/[PROJECT_ID]/browser-use-web-ui/web-ui:v1 .
ローカルでのコンテナ起動
コンテナを起動します。
% docker run -p 8080:8080 -e CHROME_PERSISTENT_SESSION=true asia-northeast1-docker.pkg.dev/[PROJECT_ID]/web-ui
環境変数が足りない旨のエラーが出る場合は、環境変数を追加します。
% docker run -p 8080:8080 asia-northeast1-docker.pkg.dev/[PROJECT_ID]/web-ui
Error: Format string '%(ENV_CHROME_PERSISTENT_SESSION)s' for 'program:persistent_browser.autorestart' contains names ('ENV_CHROME_PERSISTENT_SESSION') which cannot be expanded. Available names: ENV_ANONYMIZED_TELEMETRY, ENV_BROWSER_USE_LOGGING_LEVEL, ENV_CHROME_PATH, ENV_DISPLAY, ENV_GPG_KEY, ENV_HOME, ENV_HOSTNAME, ENV_LANG, ENV_PATH, ENV_PLAYWRIGHT_BROWSERS_PATH, ENV_PYTHONUNBUFFERED, ENV_PYTHON_SHA256, ENV_PYTHON_VERSION, ENV_RESOLUTION, ENV_VNC_PASSWORD, group_name, here, host_node_name, program_name in section 'program:persistent_browser' (file: '/etc/supervisor/conf.d/supervisord.conf')
For help, use /usr/bin/supervisord -h
Dockerfileに以下の環境変数を追加します。
ENV CHROME_PERSISTENT_SESSION=true
ENV RESOLUTION_WIDTH=1920
ENV RESOLUTION_HEIGHT=1080
すると、起動しました。
% docker run -p 8080:8080 asia-northeast1-docker.pkg.dev/[PROJECT_ID]/web-ui
これに関しては、環境変数を追加する、PRを作成し、マージされました。
http://127.0.0.1:8080/ へアクセスすると、Browser Use WebUIの画面が表示されます。
Artifact Registryにリポジトリを作成
Artifact Registryにリポジトリが作成できたことを確認します。
% gcloud artifacts repositories create browser-use-web-ui --repository-format=docker --location=asia-northeast1 --description="Docker repository for Cloud Run browser-use web-ui"
Create request issued for: [browser-use-web-ui]
Waiting for operation [projects/[PROJECT_ID]/locations/asia-northeast1/operations/xxx] to complete
...done.
Created repository [browser-use-web-ui].
Dockerイメージのプッシュ
ビルドしたイメージをArtifact Registryにプッシュします。
% docker push asia-northeast1-docker.pkg.dev/[PROJECT_ID]/browser-use-web-ui/web-ui:v1
The push refers to repository [asia-northeast1-docker.pkg.dev/[PROJECT_ID]/browser-use-web-ui/web-ui]
9a4cfae23409: Pushed
...
latest: digest: sha256:xxxx size: 3473
pushされたことをGoogle Cloudコンソールでも確認します。
Cloud Runへデプロイ
Artifact Registryへ登録されたイメージからCloud Runを認証なしで起動します。
% gcloud run deploy web-ui --image=asia-northeast1-docker.pkg.dev/[PROJECT_ID]/browser-use-web-ui/web-ui:v1 --memory=1Gi --port=8080 --allow-unauthenticated
Deploying container to Cloud Run service [web-ui] in project [PROJECT_ID] region [us-central1]
⠼ Deploying...
⠼ Creating Revision...
. Routing traffic...
✓ Setting IAM Policy...
Done.
Service [web-ui] revision [web-ui-00010-t44] has been deployed and is serving 100 percent of traffic.
Service URL: https://web-ui-xxxxxxxxx.us-central1.run.app
動作確認
https://web-ui-xxxxxxxxx.us-central1.run.app へアクセスして、browser-use web-uiのトップ画面が出たら、OKです。
サービスの削除
デプロイしたサービスを削除します。
% gcloud run services delete web-ui --quiet
Deleting [web-ui]...done.
Deleted service [web-ui].
おわりに
本記事では、browser-useのweb-uiをCloud Runへデプロイすることで、ローカル以外でも試せるようにしました。
Cloud Runへデプロイすることで、ローカル以外でも、browser-useを試せる環境を作ることができました。
ローカルでの環境構築が不要になり、色々な人がbrowse-useでのブラウザ自動化を試すことができます。
最後までお読み頂きありがとうございました。本記事が参考になれば、幸いです。
Discussion