【发布时间】:2022-01-04 13:47:35
【问题描述】:
我是 Django/EB/Git 的新手,一直在做一个 django 项目,并成功地分离了我的设置并分离了用于开发和生产的 .env 文件,这些文件都按预期工作并已部署 - 请参阅以下项目结构:
项目结构
project root
myapp
settings
__init__
base.py
dev.py
prod.py
.env.dev
.env.prod
.gitignore
manage.py
requiremnts.txt
但是,当我将 .env 文件添加到 .gitignore 文件时,我现在在 eb 日志 (cfn-init-cmd.log) 中收到以下部署错误:
.gitignore
# Elastic Beanstalk Files
.elasticbeanstalk/*
!.elasticbeanstalk/*.cfg.yml
!.elasticbeanstalk/*.global.yml
.env.dev
.env.prod
错误:eb 日志 (cfn-init-cmd.log) FileNotFoundError:[Errno 2] 没有这样的文件或目录:'.env.prod'
如果我从 .gitignore 文件中删除 .env.prod,那么我的项目部署成功。
此外,我在网上阅读可能是由于我将 .env.prod 文件添加到 repo 中,但我相信当我重新开始并重新创建 git repo 时,我也排除了 git add/commit以下命令(在本地项目上运行的命令):
git add --all -- :!.env.dev :!.env.prod
git commit -m "Initial commit"
接着是:
eb deploy myproject-env
查看我的 .ebextensions 配置文件如下:
.ebextensions/django.config
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: myproject.wsgi:application
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: "myproject.settings.prod"
aws:elasticbeanstalk:environment:proxy:staticfiles:
"/static": "static/"
packages:
yum:
python3-devel: []
mariadb-devel: []
container_commands:
01_collectstatic:
command: "source /var/app/venv/staging-LQM1lest/bin/activate && python manage.py collectstatic --noinput"
02_migrate:
command: "source /var/app/venv/staging-LQM1lest/bin/activate && python manage.py migrate --noinput"
leader_only: true
我不确定是否应该将任何 git 命令添加到我的 .ebextensions 配置中,但假设它只是在本地 git repo 上完成然后推送到 github,我也尝试使用和不使用 codecommit 进行部署,但是与上述没有区别。
我花了大约一周的时间来弄清楚这一切并最终能够部署,我相信这应该是将 .env 文件添加到 .gitignore 文件的最后一步,我只是不确定我是什么'我在 git repo 中遗漏或做了一些我正确的事情。
非常感谢您对此的任何帮助/指导,在此先感谢。
【问题讨论】:
标签: django git amazon-elastic-beanstalk