[英]Django Settings and GitHub Action Secrets
我有一個Django項目,並且正在使用Postgres數據庫。 我想找到一種更簡單的方法來在本地和 Github 上存儲我的憑據,這樣我就可以在這兩個地方運行測試,但我的敏感信息都不在 git 存儲庫中。
即使該數據庫僅存在於我的計算機上(並且 Github 測試數據庫在 GitHub 上一次僅存在大約一分鍾),我想對 SECRETS 使用可能的最佳實踐,所以當我進行go直播時,我已經准備好了。
目前,我擁有的唯一敏感數據是數據庫密碼。 這是我如何將我的真實密碼保留在 GitHub 之外的方法。
settings.py(在 Git 中):
VAR_1='abc'
VAR_2 = '123'
#DOES NOT INCLUDE DATABASE CONFIG
VAR_3 = 'efg'
# Add settings from local file into main settings
try:
from .localsettings import *
except ImportError:
import sys
print('localsettings not defined.')
localsettings.py(不在 Git 中):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'real-db-name',
'USER': 'real-user',
'PASSWORD': 'real-password',
'HOST': 'localhost',
'PORT': '',
}
}
testsettings.py(在 Git 中):
# import main settings and then overright certian values
try:
from .settings import *
except ImportError:
import sys
print('settings not defined.')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'github-db-name',
'USER': 'github-db-user',
'PASSWORD': 'github-user-password',
'HOST': 'localhost',
'PORT': '',
}
}
使用此設置,我可以在本地正常運行測試python manage.py test
但是當我在 Github 上運行它們時,我必須使用python manage.py test --settings=path.to.testsettings
有沒有一種類似於 GitHub 的方式在本地存儲機密的方法,這樣我就可以只有一個設置文件,它可以在本地和 GitHub 上工作?
我會考慮將秘密從環境變量傳遞給 Django 配置文件。 https://django-environ.readthedocs.io/en/latest/
然后,您只需在 Github 操作中將帶有秘密的 env 變量傳遞給正在運行的容器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.