0%

用Docker安装Headless Chrome

最近用Headless Chrome浏览器配合Selenium搞了下前端项目的测试,效果还可以,在Jenkins部署代码后引入测试,起码保障了前端部署后的可用性。这篇文档放上在Ubuntu 20.04环境下安装无头Chrome浏览器的Dockerfile,便于以后查询。

Dockerfile内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
FROM ubuntu:20.04

ARG APT_MIRROR_HOST=mirrors.tuna.tsinghua.edu.cn
ENV DEBIAN_FRONTEND noninteractive

# modify apt source list
RUN sed -i "s/archive.ubuntu.com/${APT_MIRROR_HOST}/g" /etc/apt/sources.list \
&& sed -i "s/security.ubuntu.com/${APT_MIRROR_HOST}/g" /etc/apt/sources.list

# update source
RUN apt update

# install base tools
RUN apt install -y wget fonts-wqy-microhei

# download and install latest chrome
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb;exit 0
RUN apt install -f -y

# config timezone
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

解释下其中的一些点:

  • apt镜像换成了清华的源,安装依赖能快点;
  • 设定DEBIAN_FRONTEND为noninteractive,因为安装过程中会涉及到安装tzdata这个包,这个包会启动交互询问,最终导致docker build的时候就卡住了,所以需要提前设定下这个环境变量。但这样做的话,最后一步也就需要加了个设置时区的操作,手动来设置下时区;
  • 安装了下文泉驿的字体,虽然可能用不到,但可以解决导出pdf的时候中文无法显示的问题;
  • 安装chrome的时候先用 dpkg -i 命令安装了一次,肯定会失败,因为缺依赖,此时要用’exit 0’来结尾,防止build命令退出;
  • 用apt install -f -y尝试修复依赖,取巧,是可以安装成功的~
如果我的文字帮到了您,那么可不可以请我喝罐可乐?