开发随笔 - selenium 项目容器化

简单记录下在将 selenium 项目迁移至容器时遇到的一些小问题

1.Dockerfile

参考项目 Github:joyzoursky/docker-python-chromedriver

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FROM python:3.8-alpine

# update apk repo
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

# install chromedriver
RUN apk update
ENV PYTHONUNBUFFERED=1
ENV DISPLAY=:99
RUN apk add --no-cache chromium chromium-chromedriver
# upgrade pip
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

WORKDIR /WORKDIR
COPY requirements.txt /WORKDIR/

RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

COPY main.py /WORKDIR/

CMD python main.py

2. 会遇到的问题:

  1. root 权限下 需要添加 option.add_argument('--no-sandbox') 才能正常启动

  2. 安装 demjson 2.2.4 出现以下报错

    error in demjson setup command: use_2to3 is invalid
    由于 demjson 2.2.4 兼容 python2 和 python3,当安装环境为 python3 时,有一部分代码需要转换
    Setuptools 从版本 58.0.0 开始不再支持 2to3 的 builds,所以导致 demjson 2.2.4 安装后不再可用,
    降级 setuptools 版本即可解决
    pip install --upgrade setuptools==57.5.0