我正在使用 Django 和 Vuejs 开发一个应用程序,现在是测试部署相关内容的时候了。我的应用程序将被部署多次(每个未来客户 1 个实例),所以我想使用容器来加快部署和删除虚拟机维护。
事情是 :
我现在不知道如何在生产中构建 vuejs 部分。
Django 后端应该为捆绑资产提供服务,虽然我在 AWS 文档中看到我可以迁移、收集静态文件、......容器启动时的 Django 应用程序,但我不知道我应该在何时/何地构建 vuejs 部分,以便让 Django 收集构建的东西。
有人可以帮我吗?
我应该何时/何地/如何构建 vuejs 部分?
请注意,Django 和 Vuejs 以这种方式集成:无论 URL 是什么,Django 都为 Vuejs SPA 提供服务。Vuejs SPA 使用 Django Rest Framework 制作的 Django API。
在此先感谢您的帮助。
如果需要更多信息,我会编辑这篇文章。
没有使用 beanstalk,所以尝试帮助 ECR + ECS + ALB 堆栈。
此外,您没有提供很多有关您的配置的信息,并且您的问题有点宽,无法明确回答。所以以下描述是典型情况,可能不适用于您的情况。
创建您自己的自定义容器映像:
并将其汇集到 ECR。
这些图像将由某些 CI/CD 工具或手动更新。您必须每次都在您的环境中的某个地方构建它。由你决定
创建 ECS 集群(或两个用于 Front 和 Back)。设置必须同时运行的容器数量、监听的端口等。ECS 将使用第一步中的镜像来运行容器。
创建应用程序负载均衡器并将所有路径api/
(domain.com/api/url)重定向到后端容器,将所有其他路径重定向到前端(必须创建两个目标组)。
为负载均衡器 HTTPS 侦听器创建 SSL 证书
更新1:回答 When/where/how should I build the vuejs part ?
根据此信息beanstalk 可以使用您的自定义图像来运行容器
Elastic Beanstalk 的 Docker 和多容器 Docker 平台支持使用存储在公共或私有在线映像存储库中的 Docker 映像。
因此,如果您将 Vue 和 Django 存储在一个容器中:
我应该什么时候构建 vuejs 部分
任何时候你想向你的基础设施发布新代码
我应该在哪里构建 vuejs 部分
已安装 Docker 的服务器/计算服务中的任何位置
我应该如何构建 vuejs 部分
更新2:回答 Concerning the uploaded images, I guess I have to save them on some AWS S3 storage somehow ?
最好的方法是使用 S3 作为静态内容存储(您甚至可以将所有 Vue代码存储在 S3 中,并且根本不使用容器作为前端)
Django 也支持 S3。而且很方便。
※ 如果您尝试在 S3 上运行 Vue,请不要忘记 CORS 设置
但是我可以假设,您已经拥有一个完整的服务,该服务使用通常的 POSIX 存储而不是类似 S3 的对象存储。所以在这里将永久共享 EFS 卷挂载到您的容器会更容易。在这种情况下,您无需更改任何代码即可运行服务。
如果你有时间调整对象存储的代码,我推荐使用这种方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句