【发布时间】:2021-10-12 08:20:58
【问题描述】:
我正在设置一个 gitlab 管道,我想使用它在 AWS 上使用 Terraform 部署 Django 应用程序。
目前我只是设置管道,以便验证 terraform 并运行测试 (pytest) 和 lynting。
管道在docker中使用docker,看起来是这样的:
image:
name: hashicorp/terraform:1.0.5
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
stages:
- Test and Lint
Test and Lint:
image: docker:20.10.9
services:
- docker:20.10.9-dind
stage: Test and Lint
script:
- apk add --update docker-compose
- apk add python3
- apk add py3-pip
- docker-compose run --rm app sh -c "pytest && flake8"
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^(master|production)$/ || $CI_COMMIT_BRANCH =~ /^(master|production)$/'
由于数据库错误,管道无法运行测试,我认为这很奇怪,因为我正在使用 pytest 模拟 django 数据库。
如果我只是运行:
docker-compose run --rm app sh -c "pytest && flake8"
在我本地机器的终端上,所有测试都通过了。
知道如何调试吗?
附言 如果我需要添加更多信息,请告诉我。
【问题讨论】:
-
srcript部分描述了您在主机而不是 docker 中运行的步骤。
标签: django docker pytest gitlab-ci