我一直在努力将我的Django Web App成功部署到AWS的Elastic Beanstalk上。我可以在我的本地机器上通过EB CLI部署我的应用,一点问题都没有,直到我在.ebextensions文件夹内添加了一个container_commands的配置文件列表。
下面是我的配置文件的内容。
container_commands:
01_makeAppMigrations:
command: "django-admin.py makemigrations"
leader_only: true
02_migrateApps:
command: "django-admin.py migrate"
leader_only: true
03_create_superuser_for_django_admin:
command: "django-admin.py createfirstsuperuser"
leader_only: true
04_collectstatic:
command: "django-admin.py collectstatic --noinput"
我深入研究了日志 发现在cfn -init -cmd.log中的这些信息是最有用的。
2020-06-18 04:01:49,965 P18083 [INFO] Config postbuild_0_DjangoApp_smt_prod
2020-06-18 04:01:49,991 P18083 [INFO] ============================================================
2020-06-18 04:01:49,991 P18083 [INFO] Test for Command 01_makeAppMigrations
2020-06-18 04:01:49,995 P18083 [INFO] Completed successfully.
2020-06-18 04:01:49,995 P18083 [INFO] ============================================================
2020-06-18 04:01:49,995 P18083 [INFO] Command 01_makeAppMigrations
2020-06-18 04:01:49,998 P18083 [INFO] -----------------------Command Output-----------------------
2020-06-18 04:01:49,998 P18083 [INFO] /bin/sh: django-admin.py: command not found
2020-06-18 04:01:49,998 P18083 [INFO] ------------------------------------------------------------
2020-06-18 04:01:49,998 P18083 [ERROR] Exited with error code 127
我不知道为什么在最新的环境中找不到这个命令 我已经在之前的豆茎环境中用这个配置文件部署了同样的应用,没有任何问题。现在唯一不同的是,这个新环境是在VPC内启动的,并且使用的是最新推荐的平台。
旧的Beanstalk环境平台: Python 3.6运行在64位Amazon Linux2.9.3上。
新的Beanstalk环境平台: Python 3.7运行在64位Amazon Linux 23.0.2上。
在这次迁移过程中,我遇到了其他与这个最新平台的语法更新有关的问题。我希望这个问题也只是一个简单的语法问题,但我找了很久都没有找到......
如果有人能指出我在这里遗漏的一些明显的东西,我会非常感激!如果我可以提供一些额外的信息,请告诉我。