【发布时间】:2020-11-06 23:50:33
【问题描述】:
我已经将我的 Django 项目部署到 AWS 上的 EB 并且运行良好。
我现在尝试使用不可变部署策略来部署它,但我收到了这个错误:
Command failed on instance. Return code: 2 Output: python: can't open file '/opt/python/current/app/manage.py': [Errno pt/python/current/app/manage.py': [Errno 2] No such file or directory.
这发生在命令期间:source /opt/python/current/env && python /opt/python/current/app/manage.py migrate
由于某种原因,我无法在第一次部署中包含该命令。
有人知道如何在 Django 中使用不可变部署方法吗?
【问题讨论】:
-
您使用的是 Amazon Linux 1 还是 2?
-
根据您在我之前的一个问题中所说的,Amazon Linux 1
-
啊,是的。我现在记得 :-) 我认为问题是
current文件夹在部署期间还不存在。仅当应用部署成功时才可用。 -
我不知道这是否是唯一的解决方案,但我基本上是在尝试复制 Heroku 使用的部署策略。我假设将新版本部署到一个新实例,这允许当前 EC2 实例仍然运行,并且一旦新实例准备就绪,它们就会被交换。
-
没错,不可变部署就是用来做这个的。
标签: django amazon-web-services amazon-elastic-beanstalk