gpt4 book ai didi

spring - Docker:客户端和服务器之间的链接

转载 作者:行者123 更新时间:2023-12-02 21:16:25 25 4
gpt4 key购买 nike

我正在使用Docker运行一个简单的spring微服务项目。我有两个项目:lucky-word-client(端口8080)和lucky-word-server(端口8001)。但是我无法与服务器进行客户端通信。实际上,如果幸运字客户端与幸运字服务器进行通信,则结果为单词“Evviva”,否则为“默认”。我的结果始终是“默认”,但我想与服务器进行通信的客户端使用单词“Evviva”。

这是两类幸运字客户端:

package asw.springcloud.luckyword;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LuckyWordApplication {

public static void main(String[] args) {
SpringApplication.run(LuckyWordApplication.class, args);
}
}


package asw.springcloud.luckyword;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.beans.factory.annotation.Value;

@RestController
public class LuckyWordController {

@Value("${lucky-word}")
private String luckyWord;

@RequestMapping("/lucky-word")
public String luckyWord() {
return "The lucky word is: " + luckyWord;
}
}

这是lucky-word-client的文件application.properties:
# application.properties 
# parola fortunata di default (if server is not accessible)
lucky-word=Default

这是lucky-word-client的文件bootstrap.properties:
 # bootstrap.properties 
spring.application.name=lucky-word
# i profili possibili sono italian e english
spring.profiles.active=italian
# oppure: export SPRING_PROFILES_ACTIVE=italian
spring.cloud.config.uri=http://localhost:8001

这是lucky-word-client的文件Dockerfile:
FROM frolvlad/alpine-oraclejdk8 

ADD build/libs/lucky-word-client-0.0.1-SNAPSHOT.jar lucky-word-client.jar

EXPOSE 8080

ENTRYPOINT ["/usr/bin/java", "-Xmx128m", "-Xms128m"]

CMD ["-jar", "-Dspring.profiles.active=italian", "lucky-word-client.jar"]

这是幸运字服务器的类别:
package asw.springcloud.configserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class CommonConfigServer {

public static void main(String[] args) {
SpringApplication.run(CommonConfigServer.class, args);
}
}

这是lucky-word-server的文件application.properties:
# application.yml 
---
spring:
cloud:
config:
server:
git:
uri: https://github.com/..../
searchPaths: projects/config-data
server:
port: 8001

这是lucky-word-server的文件Dockerfile:
FROM frolvlad/alpine-oraclejdk8 

ADD build/libs/common-config-server-0.0.1-SNAPSHOT.jar common-config-server.jar

EXPOSE 8001

ENTRYPOINT ["/usr/bin/java", "-Xmx128m", "-Xms128m"]

CMD ["-jar", "common-config-server.jar"]

最佳答案

我假设来自客户端的此配置行应指向您的服务器:

spring.cloud.config.uri=http://localhost:8001

但是,如果将客户端和服务器都部署为Docker容器,则localhost将无法工作。

对于正在运行的Docker容器,localhost是指向自身,容器,而不是容器运行所在的主机。它与Spring不相关,而仅与Docker网络相关。

另请: https://docs.docker.com/network/

基本上,您需要将两个容器都部署在同一网络中,并将容器名称用作主机。

关于spring - Docker:客户端和服务器之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50679043/

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