使用 Dockerfile 部署 Python 应用程序与 Selenium 测试
在本文中,我们将介绍如何使用 Dockerfile 部署一个 Python 应用程序,同时利用 Selenium 进行自动化测试。我们将使用官方的 Python 运行时作为父镜像,并在其中安装所需的依赖项和工具。
1. 编写 Dockerfile
# 使用官方的 Python 运行时作为父镜像
FROM python:3.9
# 设置工作目录为/app
WORKDIR /app
# 安装依赖
RUN pip install requests selenium pytest pytest-testreport jinja2
# copy你的项目
COPY UIAutomation UIAutomation
# 添加 Google Chrome 密钥并安装 Chrome 浏览器
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
apt-get update && \
apt-get install -y \
wget \
gnupg2 \
unzip \
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
&& wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome-keyring.gpg \
&& apt-key add /usr/share/keyrings/google-chrome-keyring.gpg \
&& apt-get update \
&& apt-get install -y google-chrome-stable\
&& CHROME_VERSION=$(google-chrome-stable --version | awk '{print $3}') \
&& echo "Installed Chrome version: $CHROME_VERSION"
# 复制 Chromedriver 压缩包到容器中(自己官网下载压缩包)
COPY chromedriver-linux64.zip /usr/local/bin/chromedriver-linux64.zip
# 解压 Chromedriver
RUN unzip /usr/local/bin/chromedriver-linux64.zip && \
mv chromedriver-linux64/chromedriver /usr/local/bin/chromedriver && \
chmod +x /usr/local/bin/chromedriver
# 运行 bash
CMD ["bash"]
2. Dockerfile 解释
- 我们选择了官方的 Python 3.9 运行时作为基础镜像。
- 设置工作目录为
/app
,这是我们应用程序的根目录。 - 使用
pip
安装了一些必要的 Python 库,包括requests
、selenium
、pytest
等。 - 安装了 Google Chrome 浏览器,以及与之兼容的 Chromedriver。
- 最后,设置了容器启动时的默认命令为
bash
,方便用户进入容器进行调试或执行其他操作。
3. 构建 Docker 镜像并运行容器
要构建 Docker 镜像,首先将上述 Dockerfile 保存为 Dockerfile
文件,然后在包含该文件的目录中打开终端,执行以下命令:
docker build -t my-python-app .
跑起来容器
docker run -d -it --name my-python-app uib
进入到容器
docker exec -it my-python-app bash
这将启动一个交互式容器,并在其中运行默认的 bash 命令。您可以在容器中执行任何需要的操作,例如运行 Python 脚本或进行测试。
pytest -v -s --report=_report.html --title=UI自动化 --tester=hailong --desc=H5自动化测试--template=2
出现这个证明成功了