在 Elastic Beanstalk 上部署 Django 项目时关于 git 存储库位置的问题
Posted
技术标签:
【中文标题】在 Elastic Beanstalk 上部署 Django 项目时关于 git 存储库位置的问题【英文标题】:Question about the location of the git repository when deploying Django project on Elastic Beanstalk 【发布时间】:2022-01-10 07:40:23 【问题描述】:我是 python 和弹性豆茎的新手。这是我的文件结构:
/.git # <- here's my git repo
/my-first-django
|-- django-project
|-- app
|-- django-project
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
/venv
当我阅读this doc 时,我可以看到他们创建了与django-project
相同级别的git 存储库。我应该移动存储库吗?还是在使用 awsebcli
进行部署时,我对当前的结构是否满意?
感谢您的帮助!
【问题讨论】:
这里有两个名为django-project
的目录;你是说django-project
的级别,还是django-project
的级别? ???无论如何,这实际上是您在每次提交中需要哪些文件的问题,以便这些文件由git clone
或git checkout
提取。 Git 本身并不关心你把它放在哪里,除了 Git 只会存储那些在工作树中的文件,因此添加到/存储在 index/staging-area 中。
对不起,我指的是父级。
我当前的结构在部署时是否会导致某种错误?
您可能不想想要存储 venv 文件。您可以通过从不添加它们来排除它们,或者将.git
降低一级,这样就无法添加它们。但我自己不编写这些项目,所以这取决于你。我会把这个留给 django 和 EB 的人来回答。
@torek 是对的 - 你不想想在你的 repo 中存储 venv 文件。不确定我是否可以回答您有关 EB 配置/错误的具体问题,但是 IMO,您应该将 repo 移动到 EB。不能伤害:耸肩:
【参考方案1】:
当您尝试部署 Django 应用程序时,这是一个非常常见的问题 自动 CI/CD 管道,例如 Heroku、awsebcli、azure-app 服务等。
问题是这些服务假设你的根目录是你的 wsgi.py 或 asgi.py 或者你可以说你的 Django 项目在你的根目录中。 因此,您应该从这里更改您的项目结构
/.git # <- here's my git repo
/my-first-django
|-- django-project
|-- app
|-- django-project
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
| |-- manage.py
/venv
到
/.git # <- here's my git repo
|-- django-project
|-- app
|-- django-project
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| | -- wsgi.py
|-- manage.py
/venv
您的 Django 项目应该在根目录中。另外,记得 .gitignore 你的虚拟环境
【讨论】:
以上是关于在 Elastic Beanstalk 上部署 Django 项目时关于 git 存储库位置的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Elastic Beanstalk 上修改 Nginx 配置
如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?
在 AWS Elastic Beanstalk 和 EKS 上部署了一个 laravel 应用程序 相同的数据库 RDS 为啥在 Elastic Beanstalk 中获得快速响应