在 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 clonegit 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?

Elastic Beanstalk cron 和部署权限

在 AWS Elastic Beanstalk 和 EKS 上部署了一个 laravel 应用程序 相同的数据库 RDS 为啥在 Elastic Beanstalk 中获得快速响应

在 Elastic Beanstalk 上部署 Docker 环境

在 Elastic Beanstalk 上部署 Wordpress 的多个问题