docker-compose - 无法获取 Spring - Angular 应用程序部署在 Google 云上
问题描述
我有一个带有 Spring 后端和 Angular 前端的应用程序。我正在使用 docker-compose,它正在创建 2 个容器。
我有桥接网络,所以我可以在本地进行测试。
现在我想部署到 Google Cloud。
问题:(1)我需要创建任何 gcp 特定的 yaml 文件吗?
我创建的集群似乎不够好,在这种情况下使用 GKE
没有最低可用性
我还没有看到单独使用 CloudRun 部署 spring 和 angular 的任何示例。但这可能吗?
我迫切需要部署我的容器。有办法吗?
编辑:
后端 spring 能够与 CloudSQL 对话(在另一篇文章中回答)
角度应用程序未运行,因为它不知道上游主机
nginx-py-sha256-2
2021/07/14 15:21:13 [emerg] 1#1: host not found in upstream "appserver:2623" in /etc/nginx/conf.d/default.conf:2
在我的码头工人组成 -
services:
# App backend service
appserver:
container_name: appserver
image: appserver
pui:
container_name: nginx-py
image: nginx-py
我的 nginx.conf 指的是 appserver
我推送的图片是
docker push eu.gcr.io/myapp/appserver
我应该在 nginx.conf 中使用什么名称才能识别上游主机?很好,如果我可以禁用前缀
GCP Kubernetes 工作负载“没有最低可用性”没有得到答复。所以不是重复的
解决方案
您有一个用于后端的容器和一个带有静态文件的前端。最好的模式是:
- 将 Cloud Run 用于您的后端
- 将Cloud Storage 用于前端(静态文件)(使存储桶可公开访问)
- 使用负载平衡器将静态请求路由到存储桶后端,并将后端请求路由到 Cloud Run
当然,忘记了 Docker Compose。
注意:如果您的前端有一个容器,带有一个网络服务器(Angular 服务器、NGINX 或其他),您也可以将它部署在 Cloud Run 上,但您无需支付处理费用。云存储是一个更好的解决方案。
在这两种情况下,建议使用负载均衡器来避免 CORS 问题。此外,如果您的业务需要,您可以在负载均衡器上添加 CDN
推荐阅读
- javascript - 向表单添加第二个提交按钮会使脚本无法在同一表单中找到元素
- python - 在此示例中,编写自定义循环以避免 str.format() 键错误的最佳方法是什么?
- r - 尝试计算平均值时在 R 中出现错误
- python - 生成数字严格递减的数字
- javascript - 按月数过滤一系列产品
- python-3.x - 如何将每行中的列表值转换为python数据框中的纯值?
- java - 在Spring Boot中使用@transactional注释控制方法中的执行顺序
- ruby - Beginner Ruby-If/else 问题,测试最终参数失败
- intellij-idea - 在 IntelliJ Idea 中,如何通过调用对象的所有 get 方法来生成代码以创建变量?
- reactjs - REACT 中状态提升和状态提升是一回事吗?