Dockerfile / Docker Compose用于具有不同端口的多个项目

时间:2018-05-03 06:14:49

标签: docker docker-compose dockerfile

我需要您的建议来构建解决方案。我有一个包含5个API项目的解决方案(.NET Core)。

Solution 
   Project 1
   Project 2 
   Project 3 
   Project 4 
   Project 5 

在不同的端口上运行,比如

http://localhost:10500/api/values , 
http://localhost:10501/api/values .. so on
http://localhost:10504/api/values

(只有帖子号码改变)

要求是将此解决方案停靠并通过Kube Ingress在Kubernetes集群中运行,更好的实施方式是什么?

1)创建一个Image部署解决方案并展开多个端口?

2)使用Docker COmpose并构建proj1导出端口,构建项目2暴露端口2等?

任何想法都很受欢迎,拜托?

1 个答案:

答案 0 :(得分:1)

我认为正确的解决方案取决于要求。选择选项1会产生这些后果:

  • 一个包含所有服务的容器,如果崩溃,所有服务都已关闭
  • 缩放:每个服务都将按比例放大,即使其中只有一个必须处理大部分流量。
  • 更新:一个服务的更改导致容器内所有其他服务的»重新部署«。
  • 监控:可以根据正在运行的容器获取每个服务的收集指标,如果所有服务都在一个容器中运行,您可以将它们全部监视为一个,或者您需要实现自己的方式来分隔日志。

简而言之:由于您可以为每项服务使用专用映像,因此如果您使用var re = new RegExp("^[+-]?[0-9]+(?:\\.[0-9]+)?$"); var strings = [ "1", "1.2", "0.232", ".232", "-1.2", "+1.2" ]; strings.forEach((s) => { console.log(s + " ==> " + re.test(s)); });,则可以更精细地进行更新,扩展和监控。