ToolError:命令 01_migrate 在 Amazon LM2 上失败

Rah*_*rma 5 django amazon-elastic-beanstalk

我正在尝试将 django 上制作的 Web 应用程序部署到 AWS Elastic BeanStalk,但它显示以下错误:

cfnbootstrap.construction_errors.ToolError:命令 01_migrate 失败

追溯:

2021-08-04 09:49:56,443 [ERROR] -----------------------BUILD FAILED!------------------------
2021-08-04 09:49:56,443 [ERROR] Unhandled exception during build: Command 01_migrate failed
Traceback (most recent call last):
  File "/opt/aws/bin/cfn-init", line 176, in <module>
    worklog.build(metadata, configSets)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 135, in build
    Contractor(metadata).build(configSets, self)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 561, in build
    self.run_config(config, worklog)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 573, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 273, in build
    self._config.commands)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/command_tool.py", line 127, in apply
    raise ToolError(u"Command %s failed" % name)
cfnbootstrap.construction_errors.ToolError: Command 01_migrate failed
Run Code Online (Sandbox Code Playgroud)

数据库迁移.config

LM1 上是:

container_commands:
  01_migrate:
    command: "django-admin.py migrate --noinput"
    leader_only: true
option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: packsapp.settings
Run Code Online (Sandbox Code Playgroud)

对于 LM2 我尝试过这个:

container_commands:
    01_migrate:
        command: "source /var/app/venv/*/bin/activate && python3 manage.py migrate"
        leader_only: true
option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: packsapp.settings
Run Code Online (Sandbox Code Playgroud)

也尝试过这个

container_commands:
  01_migrate:
    command: "source /var/app/venv/*/bin/activate && django-admin.py migrate --noinput"
    leader_only: true
option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: packsapp.settings
Run Code Online (Sandbox Code Playgroud)

但它仍然失败。我需要改变什么?

小智 0

Amazon Linux 2 的设置与 AL1 根本不同,截至 2020 年 7 月 24 日的当前文档已过时。beanstalk 安装的环境的 django-admin 似乎不在路径上,因此您可以获取要激活的环境并确保它在路径上。

这里还有更多答案,其中更详细地说明了如何得出这个答案,但解决方案(我不喜欢)是:


container_commands:
    01_migrate:
        command: "source /var/app/venv/*/bin/activate && python3 manage.py migrate"
        leader_only: true


Run Code Online (Sandbox Code Playgroud)