我试图了解如何在django cookie cutter生成的项目中使用生产.env文件。
有关此文档,请参见此处:
项目已生成,并为环境变量创建了.local和.production文件夹。
我正尝试在数字海洋中部署到Docker分支。
我的理解正确吗?
.production文件夹不会从不签入源代码管理,并且仅在准备部署时作为在生产计算机上创建内容的示例生成。
因此,当我进行部署时,作为该过程的一部分,我需要在docker drop上进行项目的拉/克隆,然后进行
使用生产环境变量文件夹结构手动创建.production文件夹吗?
OR
在本地运行merge_production_dotenvs_in_dotenv.py来创建.env文件,然后将其复制到生产环境并配置我的production.yml以使用该文件吗?
谢谢 克里斯
答案 0 :(得分:1)
生产环境文件不在源代码管理中,只有本地文件在其中。至少这是有意的,生产环境文件不应包含在机密中,因为它们包含机密。
但是,当您运行它们时,它们会通过docker-compose添加到docker映像中。您可以使用Digital Ocean driver创建Docker机器,从终端激活它,然后通过运行docker-compose -f production.yml -d up
来启动构建的映像。
答案 1 :(得分:0)
Django cookiecutter确实添加了.envs/.production
并将.envs/
文件夹中的所有内容都添加到了源代码管理中。您可以通过检查.gitignore
文件来了解这一点。 .gitignore
文件不包含.envs
,这意味着.envs/
文件夹已签入源代码管理。
因此,当您要进行部署时,请将存储库克隆/拉入服务器,并且.production/
文件夹也将存在。
您还可以运行merge_production_dotenvs_in_dotenv.py
来创建.env
文件,但是.env
不会被检入源代码管理,因此您必须将文件复制到服务器上。然后,您可以将docker-compose文件配置为将path/to/your/project/.env
作为env_file
包含在需要该文件中环境变量的任何服务中。
您可以使用 scp 将文件从本地计算机轻松复制到服务器,如下所示:
scp /path/to/local/file username@domain-or-ipaddress:/path/to/destination