场景(使用Docker环境)
- 需要chromedriver+chrome环境,但是当前系统部署繁琐或者没有符合当前系统版本应用的情况;通过docker方式可以做到只要有docker环境可以做到一次制作,到处使用;
- 不确定直接部署到服务器是否会影响其他服务;
- 适用于集群或者基于K8s编排的后端服务需要chromedriver+chrome环境,但是集群部署安装工作量大或通过K8s编排后的服务无法确认所在服务器;该两种情况则将chromedriver+chrome打包为镜像通过基础镜像的方式创建到服务镜像中以此解决问题。
- 等等类似场景…
一、前期准备
-
准备chromedriver、google-chrome包
chromedriver下载地址:https://googlechromelabs.github.io/chrome-for-testing/
google-chrome下载地址:win系统直接官网下载即可,linux则通过yum命令下载rpm包至本地后根据对应版本去找chromedriver版本即可。
也可直接拿我整理好的这个(chromedriver、google-chrome、Dockerfile):点这里 提取码: cptp
二、创建Dockerfile文件(如果直接拿上面网盘文件则忽略)
# 基础镜像为Centos7 也可根据自身需求修改
FROM centos:centos7
# 将下载的google-chrome 添加到工作目录下(根据自身修改)
ADD google-chrome-stable-117.0.5938.92-1.x86_64.rpm /usr/local
# 将下载的chromedriver 添加到工作目录下(根据自身修改)
ADD chromedriver /usr/local/bin
# 执行命令安装浏览器、以及解决浏览器中文乱码问题依赖(如不需要可删除)、最后给chromedriver设置权限(根据自身修改)
RUN yum -y localinstall /usr/local/google-chrome-stable-117.0.5938.92-1.x86_64.rpm \
&& yum -y groupinstall "X Window System" \
#&& yum -y groupinstall chinese-support \
&& yum -y groupinstall Fonts \
&& chmod a+x /usr/local/bin/chromedriver
三、构建镜像(构建镜像需要连接外网,如果需要内网部署要在能连外网的机器上构建好)
创建好Dockerfile之后,直接构建镜像即可。
命令: docker build -t 镜像名 .
四、下载构建出来的镜像
# 查看镜像
docker images
# 找到构建的镜像ID
docker save -o 下载的包名 镜像名:版本
示例: docker save > chrome_driver_base_image.tar.gz chrome_driver_base_image:latest
五、上传镜像
将下载的镜像上传至需要环境的镜像仓库
docker load -i 下载的包名
六、完成
上传镜像之后,即可根据不同的需求在后端服务的Dockerfile中引入该镜像即可。