ARM上面ubuntu部署chromedriver的过程
直接上方案
cat > sources.list <<EOF
deb http://ftp.de.debian.org/debian sid main
EOF
cat >key <<EOF
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
apt-key export 0E98404D386FA1D9 | gpg --dearmour -o /etc/apt/trusted.gpg.d/charlesproxy2.gpg
apt-key export 40976EAF437D05B5 | gpg --dearmour -o /etc/apt/trusted.gpg.d/charlesproxy3.gpg
EOF
chmod 777 key
Dockerfile
FROM ubuntu:24.04
RUN apt-get update
RUN apt-get install gnupg -y
COPY sources.list /etc/apt/
COPY key /root/key
RUN /root/key
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive TZ="Asia/Shanghai" apt-get install chromium chromium-driver -y && apt-get clean
镜像打包与确认
docker build . -t ubuntu:2204chrome123
版本确认:
root@fa83ffdb6742:/# chromedriver -v
ChromeDriver 123.0.6312.105
root@fa83ffdb6742:/# chromium --version
Chromium 123.0.6312.105 built on Debian trixie/sid
root@fa83ffdb6742:/# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
root@fa83ffdb6742:/# lscpu |grep arch
Architecture: aarch64
备份迁移:
docker save ubuntu:2204chrome123 |gzip >ubuntu_aarch64_2204chrome123.tar.gz
脚本说明
1. 从基础镜像开始打包
2. 因为我使用的是 debian的仓库 所以需要引入debian的仓库
3. 引入仓库必须的添加一下 gpg的 新人才可以, 所以有一个比较麻烦的操作.
4. 因为安装chrome有一个选择时期的操作,需要需要加上这一段话:
DEBIAN_FRONTEND=noninteractive TZ="Asia/Shanghai"
可以不进行交互,便于镜像打包,并且设置时区为东八区
5. 后续可以增加上python 等部分.
6. 可以ln -s 别名的方式来使用 chrome 进行处理.
root@fa83ffdb6742:/# ln -s /usr/bin/chromium /usr/bin/chrome
root@fa83ffdb6742:/# chrome --version
Chromium 123.0.6312.105 built on Debian trixie/sid,
其他说明之一
应该每次都会自动打包一个最新版本的chrome 以及 chrome-deriver
最合理的方式应该还是 手工编译.
这边么有条件, 所以还是使用包管理器进行处理.
需要注意 x86 使用的是 google的chrome
所以浏览器命令是 chrome
使用debian包 则是使用 chromium命令, 这一点存在区别.
其他说明之二
发现debian的镜像源有一个很坑爹的问题.
我使用阿里云 安培 基于Neoverse-N1 架构的虚拟机
总是会提示错误:
docker run -it ubuntu:2204chrome123
root@fe436e751214:/# chromium --version
Trace/breakpoint trap (core dumped)
但是我迁移到 鲲鹏上面就是可以的.
root@fa83ffdb6742:/# chromium --version
Chromium 123.0.6312.105 built on Debian trixie/sid,
怀疑 debian的仓库用的事比较久的 aarch64 架构的指令集.
对更新的安培其实不支持, 这里面其实挺坑的.
标签:fa83ffdb6742,chrome,chromium,apt,chromedriver,ubuntu,root,ARM
From: https://www.cnblogs.com/jinanxiaolaohu/p/18115694