使用端口而不是8080

问题描述 投票:0回答:1
wiremock: image: registry.myworkplace.com/contributions/wiremock:3x environment: WIREMOCK_OPTIONS: "--port 8081 --global-response-templating" ports: - "8081:8081" volumes: - ./src/test/resources/__files:/home/wiremock/__files - ./src/test/resources/mappings:/home/wiremock/mappings restart: unless-stopped healthcheck: test: [ "CMD-SHELL", "curl -f http://localhost:8081/__admin/health || exit 1" ]

当我没有自定义HealthCheck应用程序启动时,启动就会被卡住了。 WireMock-1的等待已成为健康(它正在开始)

最终 等待WireMock-1变得健康(不健康)

当我在docker中努力看待在“检查”选项卡上,我发现的容器:

"Healthcheck": { "Test": [ "CMD-SHELL", "curl -f http://localhost:8080/__admin/health || exit 1" ], "StartPeriod": 5000000000, "StartInterval": 100000000 },
这是我想到设定自定义健康检查的想法的原因。
我本来可以预期通过构图上的端口的设置对此进行了更新。
    

两个数字不需要匹配。 如果服务在容器内使用端口8080,通常可以在主机上的端口8081上访问。

在大多数情况下,将服务的聆听端口保持不变是可以的。 如果构建图像是为了在端口8080上收听,请继续使用该端口。

ports:

如果您是从另一个容器中调用的,则需要确保使用默认服务端口而不是更改的端口。 容器之间的呼叫根本不使用

services: wiremock: image: registry.myworkplace.com/contributions/wiremock:3x environment: WIREMOCK_OPTIONS: "--global-response-templating" # but no --port ports: - "8081:8080" # second port number matches container-internal port volumes: [...] restart: unless-stopped # do not need to override healthcheck:

,如果要使用的唯一一件事就是支持其他服务,则您可能只能完全删除
ports:

wiremock: { ports: }

docker之间的各种服务内部端口设置之间没有太多自动接线。 该过程本身正在使用的端口号,第二次
java spring docker docker-compose wiremock
1个回答
0
投票
号码,健康检查端口,交叉服务呼叫和Dockerfile

ports:

指令(如果存在)都需要匹配,但是实际上没有任何检查,但是如果您确实尝试更改其中的任何一个,则需要手动更改所有其他。  在您的情况下,图像具有嵌入在命令字符串中的原始端口号8080,并且在该字符串中没有实际的Docker可见连接,例如暴露的端口号(如果有)。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.