gpt4 book ai didi

使用自定义 docker run 命令部署容器的 Azure Web 应用程序

转载 作者:行者123 更新时间:2023-12-01 04:45:10 25 4
gpt4 key购买 nike

考虑一个包含 React UI 的 docker 镜像。和一个 Spring REST app 。我想将其部署到容器的 Azure Web 应用程序,其中实例的 URL 为 UI它在端口 5000 上静态提供服务而Spring app正在收听8080UISpring app通信通过 HTTP,因此 UI 发出的请求到Spring app在用户的计算机上进行评估(即无法通过 Spring app 访问 localhost:8080 )。但是,端口8080未映射到默认运行命令中。另一个问题是网络应用程序只有一个 URL。

默认运行命令是:(通过FTP登录并检查docker日志)

docker run -d -p <WEB_APP_PORT>:<UI_PORT> --name ... -e ... <IMG>

我可以运行自定义 docker run命令公开 UI_PORTSPRING_PORT并设置一个具有两个 URL 的 Web 应用程序?

如果没有,是否有替代解决方案?

上下文:

  1. 最终图像是通过扩展仅包含 Spring app 的图像来构建的。 (即 FROM openjdk:8-jdk-alpine )并安装节点和 UI。

  2. entrypoint.sh脚本启动 UI 和 SPRING APP

  3. 图像中暴露的端口是 80805000 .

  4. 我想要实现的目标的图表:

最佳答案

不,您无法使用“适用于容器的 Azure Web 应用程序”执行您想要的操作,该平台允许您运行映射到仅一个 URL 的单个容器镜像,并且您只能导出 Web 端口(80、443) )到世界,并通过 SSH (2222) 到他们的内部“kudzu”服务。

作为“纯粹主义者”,您描述的是“微服务堆栈”,因此您必须采用完整的容器编排,例如“Azure 容器服务”(AKS,使用 Kubernetes)或“Azure Service Fabric”(看起来像当他们实现目标时,那就太棒了)。

但是,您可以通过内部运行“映射服务”来完成它,例如 Nginx 代理,它将“/”发送到 localhost:8080 UI 并将/api 发送到 localhost:5000 Spring API,或者任何技术传统上用于单页应用程序“路由”。

这是一个决定,是将所有服务放入单个 URL 后面的单个容器中(容器中的微服务),还是将每个进程放入容器编排平台上的容器中(前者在运行时间和成本上更便宜,后者更“优雅”和灵活,但需要更多时间来构建管理并且运行成本更高)。

关于使用自定义 docker run 命令部署容器的 Azure Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47220170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com