我是 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 add/commit 并使用以下命令重新創建了 git repo(命令在本地專案上運行):
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
我不確定是否應該向我的 .ebextensions 配置添加任何 git 命令,但假設它只是在本地 git repo 上完成,然后推送到 github,我也嘗試使用和不使用 codecommit 進行部署,但沒有任何區別以上。
我花了大約一周的時間弄清楚這一切,終于能夠部署,我相信這應該是將 .env 檔案添加到 .gitignore 檔案的最后一步,我只是不確定我錯過了什么或用 git repo 做了一些我正確的事情。
我將不勝感激對此的任何幫助/指導,提前致謝。
uj5u.com熱心網友回復:
如果.ebignore檔案不存在,則Elastic beanstalk 使用.gitignore檔案。因此,您可以將兩者都用于檔案管理。
AWS 檔案說:
您可以通過將檔案 .ebignore 添加到目錄來告訴 EB CLI 忽略專案目錄中的某些檔案。這個檔案就像一個 .gitignore 檔案。
...
如果 .ebignore 不存在,但 .gitignore 存在,EB CLI 將忽略 .gitignore 中指定的檔案。如果 .ebignore 存在,EB CLI 不會讀取 .gitignore。
當 .ebignore 存在時,EB CLI 不會使用 git 命令來創建您的源包。這意味著 EB CLI 會忽略 .ebignore 中指定的檔案,并包括所有其他檔案。特別是,它包括未提交的源檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367923.html
下一篇:在Django中過濾隨機物件
