访问gitlab CI django中的私有数据.env文件



我遇到了一个问题,我不想在gitlab上提交我的.env文件,但在CI期间,我需要像这样的数据库配置值

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'test',
'USER': 'postgres',
'PASSWORD': '',
'HOST': 'postgres',
'PORT': '5432'
}
} 

而我的文件在实际中

DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": config("DB_NAME"),
"USER": config("DB_USER"),
"PASSWORD": config("DB_PASSWORD"),
"HOST": config("DB_HOST"),
"PORT": config("DB_PORT", cast=int),
}
}

那么,将这些值分配给运行测试的可能方法是什么呢?在CI gitlab 中py

这里有几个选项。最明显的是使用GitLab的CI/CD环境变量。您也可以通过这种方式在作业中创建文件,而不仅仅是env变量。

您可以有一个模板.env文件,并使用sed对其进行编辑,以注入CI/CD env变量中的值(如果您不想创建.env文件类型变量(。

另一种方法是将配置值存储在像Hasicorp Vault这样安全的地方,并在作业中从Vault中检索机密。类似的事情可以通过将秘密存储在任何地方来实现,而不必是Vault。您可以将访问保险库的机密存储在屏蔽的CI/CD变量中。

最新更新