aah*_*nik 8 python testing docker github-actions
有时我们在编写docker文件时会出错。如果 Dockerfile 中有错误,docker 构建将会失败。
有时我们可能会忘记在 Dockerfile 中指定依赖项。让我们举个例子。
假设我有一个 python 脚本,可以截取任何网页(提供了 URL)的屏幕截图。
pytest 将在我的本地开发环境中通过。RUN我忘记在 dockerfile 中指定将安装 chromium 和 chrome 驱动程序的命令。因此在容器内运行测试将会失败。(尽管docker build会成功。)我想自动化构建 docker 镜像并在容器中运行测试的任务。
在本地机器上,我可以运行docker build -t myproj .构建。
为了测试,我可以运行docker run -it myproj pytest(如果我忘记添加RUN安装 chromium 和 chromedriver,那么我的 pytest 将在容器内失败)
我希望我能够解释我的目的。
通常,在 github actions 中,python 源代码可以在 ubuntu、mac、windows 等上运行。除了不同的操作系统之外,我还想构建和测试我的 dockerfile。
aah*_*nik 14
经过更多的实验和研究,我发现解决我的问题很简单。
在文件夹内.github/workflows创建一个docker-build-test.yml文件。
name: Docker build and test
on:
workflow_dispatch
# you can trigger on anything you want
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build Docker image
run: docker build -t samplepy .
- name: Run tests inside the container
run: docker run samplepy poetry run pytest
Run Code Online (Sandbox Code Playgroud)
非常简单,因为 github 的 ubuntu-latest VM 已经安装并配置了 docker。您只需运行docker命令,一切就正常了。
而且,我还使用一个虚拟 python 项目测试了上述工作流程。

| 归档时间: |
|
| 查看次数: |
3801 次 |
| 最近记录: |