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

arm64架构AmazonLinux2 Docker部署Chrome及ChromeDriver方案

我习惯先说明问题的排查背景,若您仅关注核心问题可直接跳至文末!

背景说明(供感兴趣的读者参考)

我搭建了基于amazonlinux:2的Docker环境,在其中通过chromedriver运行自动化测试,该环境在更换为M1芯片的MacBook前一直运行正常。更换设备后,无论使用跨架构编译的Docker容器,还是原生arm64架构编译的Docker容器,都无法正常运行如下测试脚本:

import time

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--fullscreen')
options.add_argument('--remote-debugging-port=9222')
options.binary_location = '/usr/local/bin/chromedriver'

driver = webdriver.Chrome(chrome_options=options, service_args=["--verbose", "--log-path=/opt/chromedriver.log"])

driver.get('http://www.google.com/')

time.sleep(5) # 等待页面加载
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()

time.sleep(5) # 等待搜索结果加载
driver.quit()

两种编译方式分别遇到不同问题:

  • 添加--platform=linux/amd64参数跨架构编译容器时,脚本直接崩溃:跨架构环境下Chrome与chromedriver存在兼容问题,始终无法正常启动。
  • 不添加--platform参数原生编译amazonlinux:2镜像时,arm64架构下CentOS7没有可用的官方Chrome安装包。
当前排查进展

我尝试自行编译Chromium集成到镜像中替代官方Chrome包,最初按照Linux Chromium Arm编译指南操作,后续跟进Chromium官方构建说明的拉取代码步骤,但执行如下命令时直接报错:

$ fetch --nohooks chromium

核心报错信息如下:

bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
cat: /opt/depot_tools/python3_bin_reldir.txt: No such file or directory
[E2022-06-15T15:13:00.163840Z 717 0 annotate.go:273] goroutine 1:
#0 go.chromium.org/luci/vpython/venv/config.go:309 - venv.(*Config).resolvePythonInterpreter()
  reason: none of [/opt/depot_tools//python3] matched specification 3.8.0

#1 go.chromium.org/luci/vpython/venv/config.go:153 - venv.(*Config).resolveRuntime()
  reason: failed to resolve system Python interpreter

#2 go.chromium.org/luci/vpython/venv/venv.go:143 - venv.With()
  reason: failed to resolve python runtime

#3 go.chromium.org/luci/vpython/run.go:60 - vpython.Run()
#4 go.chromium.org/luci/vpython/application/application.go:327 - application.(*application).mainImpl()
#5 go.chromium.org/luci/vpython/application/application.go:416 - application.(*Config).Main.func1()
#6 go.chromium.org/luci/vpython/application/support.go:46 - application.run()
#7 go.chromium.org/luci/vpython/application/application.go:415 - application.(*Config).Main()
#8 vpython/main.go:112 - main.mainImpl()
#9 vpython/main.go:118 - main.main()
#10 runtime/proc.go:225 - runtime.main()
#11 runtime/asm_arm64.s:1130 - runtime.goexit()

报错提示系统缺少GLIBC_2.27版本依赖,我不希望替换系统核心类库,因此自行编译Chromium的方案无法推进。

待解决问题

如何在基于CentOS7的amazonlinux:2 Docker镜像(arm64/aarch64架构)中,成功部署并运行Chrome/Chromium及配套的chromedriver?


内容的提问来源于stack exchange,提问作者Niklas Möller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:57:31