AWS Elastic Beanstalk容器命令失效

问题描述 投票:0回答:0

我一直在努力将我的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上。

在这次迁移过程中,我遇到了其他与这个最新平台的语法更新有关的问题。我希望这个问题也只是一个简单的语法问题,但我找了很久都没有找到......

如果有人能指出我在这里遗漏的一些明显的东西,我会非常感激!如果我可以提供一些额外的信息,请告诉我。

python django amazon-web-services amazon-elastic-beanstalk
© www.soinside.com 2019 - 2024. All rights reserved.