ARM上面ubuntu部署chromedriver的过程

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 架构的指令集. 
对更新的安培其实不支持, 这里面其实挺坑的. 
posted @ 2024-04-05 13:41  济南小老虎  阅读(18)  评论(0编辑  收藏  举报