解决Docker容器内安装chrome浏览器无法启动bug

6 篇文章 0 订阅
4 篇文章 0 订阅

前言

  • 之前写的基于Ubuntu20.04 的Docker容器可视化Dockerfile,默认火狐浏览器,今天要测试一个项目就run了一个可视化容器,但是我需要用到chrome浏览器,于是乎开始安装,按照正常安装方法安装好后发现无法运行,报错ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.(不支持以root身份运行,且不使用–no-sandbox),到这里可能到家就知道是什么问题了,那么接下来开始debug。

安装chrome浏览器

1.下载
  • 32位系统安装包:wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb
  • 64位系统安装包:wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
2.安装
  • 32位系统安装命令: dpkg -i google-chrome-stable_current_i386.deb
  • 64位系统安装命令:dpkg -i google-chrome-stable_current_amd64.deb
3.不出意外的话直接安装可能会缺少依赖报错,解决办法:
  • 执行以下命令即可直接安装:
    • apt-get update && apt-get install -f ./google-chrome-stable_current_amd64.deb
  • 可能会有以下提示:
    • N: 由于文件'/root/google-chrome-stable_current_amd64.deb'无法被用户'_apt'访问,已脱离沙盒并提权为根用户来进行下载。 - pkgAcquire::Run (13: 权限不够)
    • 如出现以上提示直接忽略即可
4.更改/usr/bin/google-chrome-stable文件配置
  • 打开google-chrome-stable文件

    • vim /usr/bin/google-chrome-stable
  • 找到exec -a "$0" "$HERE/chrome" "$@" 这一行(不出意外应该在最后一行)

    • exec -a "$0" "$HERE/chrome" "$@"末尾追加--user-data-dir="$HOME/.config/chrome" --no-sandbox --disable-dev-shm-usage 参数即可

https://loganjin.cn/cdn/article/docker-chrome/docker-install-chrome.png

  • 参数解读:
    • --user-data-dir:chrome的配置信息目录,此参数可不增加
    • --no-sandbox:非沙箱模式运行
    • --disable-dev-shm-usage:关闭dev-shm,此参数可解决“喔唷,崩溃啦!显示此网页时出了点问题。误代码: SIGTRAP ”报错

一键安装脚本

#!/bin/bash
apt-get update && apt-get install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt-get install -y -f ./google-chrome-stable_current_amd64.deb
sed -e '/chrome/ s/^#*/#/' -i /opt/google/chrome/google-chrome
echo 'exec -a "$0" "$HERE/chrome" "$@" --user-data-dir="$HOME/.config/chrome" --no-sandbox --disable-dev-shm-usage' >> /opt/google/chrome/google-chrome

结语

  • 以上就是docker容器内安装chrome过程,希望能帮到一些小伙伴。
  • 如操作有问题欢迎去我的博客(www.loganjin.cn)留言或者微信公众号(Python技术交流圈)留言交流哦。
  • 参考:https://github.com/stephen-fox/chrome-docker/issues/8
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值