我想在容器内运行 django 测试用例。
我能够从 docker hub 中提取私有(private)图像。但是当我运行命令进行测试时,它无法运行。
任何人都尝试在容器内运行测试用例。
jobs:
test:
container:
image: abcd
credentials:
username: "<username>"
password: "<password>"
steps:
- uses: actions/checkout@v2
- name: Display Python version
run: |
python -m pip install --upgrade pip
pip install -r requirements/dev.txt
- name: run test
run: |
python3 manage.py test
最佳答案
根据我的经验,我发现使用 GitHub 的 container
指令会导致更多的困惑,而不是简单地在运行器本身上运行你想要的任何东西,就好像你在自己的机器上运行它一样。
我在 GitHub 上运行的大部分测试都在容器中运行,有些需要私有(private) DockerHub 镜像。
我总是这样做:
docker-compose.yml
用于开发,所以我可以在本地测试。 docker-compose
中的内容略有不同。 (例如,没有卷映射) - 如果是这种情况,我将创建另一个 docker-compose.yml
在 .ci
子文件夹。 docker-compose.yml
包含 test
服务,它运行我想要的任何测试(或测试套件)。 这是我正在使用的示例 GitHub 操作文件:
name: Test
on:
pull_request:
push: { branches: master }
jobs:
test:
name: Run test suite
runs-on: ubuntu-latest
env:
COMPOSE_FILE: .ci/docker-compose.yml
DOCKER_USER: ${{ secrets.DOCKER_USER }}
DOCKER_PASS: ${{ secrets.DOCKER_PASS }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Login to DockerHub
run: docker login -u $DOCKER_USER -p $DOCKER_PASS
- name: Build docker images
run: docker-compose build
- name: Run tests
run: docker-compose run test
当然,这需要设置上面提到的两个 secret ,但除此之外,我发现这种方法是:关于docker - GitHub 操作 : How to run test inside container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64364989/