You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCP Composer2环境中执行apt-get安装Chrome二进制文件

在Cloud Composer 2中安装Chrome二进制文件的解决方法

Composer 2确实不支持直接在运行时执行apt-get这类系统命令,你可以通过以下几种方式解决Chrome安装问题:

1. 自定义Worker节点镜像(推荐生产环境)

基于Composer官方Worker镜像扩展,预先安装Chrome及驱动:

  • 创建Dockerfile:
    # 替换为你使用的Composer对应的官方镜像标签
    FROM us-docker.pkg.dev/composer-227316/images/airflow-worker:composer-2.0.0-airflow-2.2.5
    RUN apt-get update && \
        apt-get install -y --no-install-recommends chromium-browser chromium-chromedriver && \
        rm -rf /var/lib/apt/lists/*
    
  • 构建镜像并推送到Google Container Registry(GCR)或Artifact Registry
  • 更新Composer环境,指定自定义Worker镜像路径

2. 使用Worker启动脚本(灵活快速)

通过Composer的启动脚本功能,在Worker节点启动时自动安装Chrome:

  • 创建bash脚本(例如install_chrome.sh):
    #!/bin/bash
    set -e
    apt-get update
    apt-get install -y --no-install-recommends chromium-browser chromium-chromedriver
    # 配置环境变量,让Airflow任务能找到Chrome
    echo 'export CHROME_BIN="/usr/bin/chromium-browser"' >> /etc/profile.d/chrome_env.sh
    echo 'export CHROMEDRIVER_PATH="/usr/bin/chromedriver"' >> /etc/profile.d/chrome_env.sh
    
  • 将脚本上传到Google Cloud Storage(GCS)
  • 在Composer环境设置中配置workerStartupScriptUri为该GCS文件路径(更新环境时设置)

3. 临时方案:在DAG中通过ShellOperator安装(不推荐生产)

如果只是临时测试,可以在DAG中用ShellOperator执行安装命令,但需注意Worker节点权限:

from airflow.operators.bash import BashOperator
from airflow.models import DAG
from datetime import datetime

with DAG(
    dag_id='install_chrome_temp',
    start_date=datetime(2024, 1, 1),
    schedule_interval=None
) as dag:
    install_task = BashOperator(
        task_id='install_chrome',
        bash_command='sudo apt-get update && sudo apt-get install -y chromium-browser chromium-chromedriver'
    )

注意:该方法每次任务运行都会重复安装,效率低,且默认Worker可能没有sudo权限,需额外配置。

内容的提问来源于stack exchange,提问作者Jaehyun Baek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:05:18