在搭载Apple Silicon M1 Pro的MacOS上通过Docker运行带GUI的Linux版Chrome
解决Apple Silicon M1 Pro上Docker构建Linux Chrome的签名错误及GUI运行问题
问题根源
在Apple Silicon(arm64)架构上跨平台构建amd64的Ubuntu 24.04镜像时,apt仓库的GPG签名验证失败,导致apt-get update执行终止。这是因为模拟amd64环境下,系统默认的GPG密钥无法正确验证Ubuntu仓库的签名。
修复后的Dockerfile
修改Dockerfile以解决签名问题并适配跨架构构建:
# 指定架构为amd64,适配Apple Silicon跨平台构建 FROM --platform=linux/amd64 ubuntu:24.04 # 修复Ubuntu仓库签名问题,更新GPG密钥 RUN apt-get update --allow-insecure-repositories && \ apt-get install -y --allow-unauthenticated gnupg2 && \ rm -rf /var/lib/apt/lists/* && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C # 安装依赖包 RUN apt-get update && apt-get install -y \ wget \ software-properties-common \ libx11-xcb1 \ libxcomposite1 \ libxcursor1 \ libxdamage1 \ libxrandr2 \ libgbm1 \ libasound2 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libnspr4 \ libnss3 \ libxss1 \ libxtst6 \ fonts-liberation \ xdg-utils \ libu2f-udev \ x11-apps \ sudo \ && rm -rf /var/lib/apt/lists/* # 添加Google Chrome仓库并安装 RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list' \ && apt-get update \ && apt-get install -y google-chrome-stable \ && rm -rf /var/lib/apt/lists/* # 创建普通用户并配置sudo权限 RUN useradd -m -s /bin/bash chrome \ && echo "chrome ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers USER chrome # X11转发环境变量 ENV DISPLAY=host.docker.internal:0 ENV XAUTHORITY=/home/chrome/.Xauthority ENTRYPOINT ["google-chrome", "--no-sandbox"]
关键修改点:
- 启动时指定
--platform=linux/amd64,明确构建amd64架构镜像 - 先修复Ubuntu仓库的GPG密钥,解决签名验证失败问题
- 增加Chrome启动参数
--no-sandbox,规避容器内权限限制
构建镜像
执行以下命令构建镜像:
docker build -t chrome-container .
配置MacOS GUI转发并运行容器
- 安装XQuartz:下载安装XQuartz,启动后在「偏好设置-安全性」中勾选「允许来自网络客户端的连接」,重启XQuartz。
- 允许本地X11访问:在终端执行:
xhost +localhost
- 启动容器:执行以下命令运行Chrome:
docker run -it --rm \ --platform=linux/amd64 \ -e DISPLAY=host.docker.internal:0 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ chrome-container
内容的提问来源于stack exchange,提问作者Alok
相关产品推荐
相关产品推荐

