【发布时间】:2021-04-06 21:42:57
【问题描述】:
我正在学习使用 Gitlab CI,我正在尝试配置 .gitlab-ci 文件以在我的 Django 项目中运行 CI。
- 我有以下 .gitlab-ci 文件:
stages:
- test
variables:
MYSQL_DATABASE: $DB_NAME
MYSQL_USER: $DB_USER
MYSQL_PASSWORD: $DB_PASSWORD
services:
- mysql:8.0
test:
image: alpine:3.13
stage: test
script:
- ...(up the app)...
- 我已经在gitlab中配置了环境变量(Settings -> CI/CD -> Variables),例如:
我使用 'mysql' 作为主机。参考:https://docs.gitlab.com/ee/ci/services/mysql.html
- 我的
settings.py文件中有以下数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': getenv('DB_NAME'),
'USER': getenv('DB_USER'),
'PASSWORD': getenv('DB_PASSWORD'),
'HOST': getenv('DB_HOST'),
'PORT': getenv('DB_PORT'),
'TEST' : {
'NAME' : f"test_{getenv('DB_NAME')}",
}
}
}
当我运行它时,所有安装都成功但在运行测试时出现以下错误:
django.db.utils.OperationalError: (2005, "Unknown MySQL server host 'mysql' (-2)")
如果在 Gitlab 文档中说如果我使用 mysql 服务是我需要配置的主机,为什么会发生这种情况?
【问题讨论】:
-
听起来
mysql在您的 /etc/hosts 文件中没有 DNS 记录或条目。尝试使用您认为的mysql服务器的 IP 地址。 -
感谢您的帮助@RedCricket 这是我的错。我已经用问题回答了这个问题。
标签: python mysql django gitlab-ci