gpt4 book ai didi

java - 更改 docker-compose 中的 dockers 端口对容器化 java 应用程序没有影响

转载 作者:行者123 更新时间:2023-12-02 10:13:08 24 4
gpt4 key购买 nike

假设这是真的:

 service port:container port
8081:8080
<小时/>
  • 根据其启动日志,应用程序在端口 8080 上启动(见下文)。现在我将端口更改为 8083:8083 ,期望服务端口和容器端口都是8083。

  • 更改 docker compose 中的端口后,我使用 docker stack deploy -c docker-compose.yml somename 重新部署它。

  • 当我再做一次时docker ps我看到容器仍在端口 8080 上运行。

<小时/>

Containerized java app startup logs:

2019-02-24 17:06:00.665  INFO 1 --- [           main] c.l.a.ArticleServiceApplication          : Starting ArticleServiceApplication v0.0.1-SNAPSHOT on 42ccc7a1554c with PID 1 (/articleservice-0.0.1-SNAPSHOT.jar started by root in /)
2019-02-24 17:06:00.748 INFO 1 --- [ main] c.l.a.ArticleServiceApplication : No active profile set, falling back to default profiles: default
2019-02-24 17:06:30.505 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-02-24 17:06:32.601 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 1643ms. Found 1 repository interfaces.
2019-02-24 17:06:48.016 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$33ba8b8e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-02-24 17:07:01.769 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)

docker-compose file:

version: "3"
services:
articleservice:
image: elps/articleservice:1.1.0.5
deploy:
replicas: 2
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == manager
ports:
- "8081:8080"
...

最佳答案

在内部,在启动期间,您的 Java 应用程序需要被告知它应该在端口 8083 上启动 - 简单地将其放入端口转发配置中不会达到目的,因为 Java 应用程序启动与您想要的方式隔离配置容器以启动。

通常,对于大多数OSS应用程序来说,应该有一些环境变量可以设置,以使Java应用程序在某个主机/端口上启动(在容器网络接口(interface)内,与主机上的网络接口(interface)不同)。

之后,如果您有 8080:8083,则意味着您希望将容器的端口 8083 转发到主机系统的端口 8080。

关于java - 更改 docker-compose 中的 dockers 端口对容器化 java 应用程序没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854742/

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