gpt4 book ai didi

tomcat - Docker 中的传统 war 部署无法访问 Eureka 服务器

转载 作者:行者123 更新时间:2023-11-28 22:41:13 28 4
gpt4 key购买 nike

Eureka boot gradle 项目 here .当我运行 bootRun 时工作正常,Eureka 绑定(bind)到本地主机上的端口 8080,可从浏览器访问,每个人都很高兴。当作为 Docker 容器启动时,该应用程序似乎可以正常启动,没有任何异常,但我无法从端口 8080 上的浏览​​器访问 Eureka 控制台。我收到 404。

我知道在 Docker 上有几个 Eureka 示例,但没有一个使用 gradle 和传统部署。

我用来启动容器的命令:docker run -it -p 8080:8080 -e DOCKER_HOST="$(echo $DOCKER_HOST | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')"xxx

Docker 引擎 1.9 与 Mac 上的 Docker Machine。

日志片段:

Adding replica node: http://192.168.99.107:8080/eureka/
2015-12-26 03:35:42.959 INFO 7 --- [ost-startStop-1] n.a.javaee.discovery.DiscoveryServer : Started DiscoveryServer in 8.167 seconds (JVM running for 12.804)

application.yml:

server:
port: ${PORT:8080}

eureka:
instance:
hostname: ${DOCKER_HOST:localhost}
preferIpAddress: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

Dockerfile:

FROM abhijitsarkar/docker:tomcat8

ADD build/libs/*.war $CATALINA_HOME/webapps/discovery.war

CMD ["supervisord", "-c", "/etc/supervisord.conf"]

发现服务器:

@SpringBootApplication
@EnableEurekaServer
public class DiscoveryServer extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DiscoveryServer.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DiscoveryServer.class);
}
}

最佳答案

应用程序似乎正在运行。你的 Dockerfile 将 war 复制到“discovery.war”,所以我希望它出现在/discovery 上(但你并没有真正说出你尝试了什么,什么不起作用)。

关于tomcat - Docker 中的传统 war 部署无法访问 Eureka 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34471032/

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