我有一个ruby应用程序的dockerfile,它在端口5000上运行puma服务器。(它EXPOSE端口并使用RUN命令运行puma -p 5000。
在我的deployment.yaml中,我必须将containerPort
设置为5000以匹配此端口。
我觉得我的配置在两个不同的地方列出了端口,这似乎很奇怪。如果我需要更改端口,则意味着我在多个位置更改配置,这违反了12因素应用程序的原则,其中配置都在同一个地方。
有没有办法只在一个地方设置端口?
答案 0 :(得分:1)
在您的deployment.yaml中,您实际上不必指定containerPort
;所有端口都暴露在外。来自docs:
ports ContainerPort数组
要从容器中公开的端口列表。在此处公开端口可为系统提供有关容器使用的网络连接的其他信息,但主要是信息性的。此处未指定端口不会阻止该端口暴露。任何正在侦听默认值的端口" 0.0.0.0"可以从网络访问容器内的地址。无法更新。