【发布时间】:2018-12-30 18:42:18
【问题描述】:
我有一个试图通过 Docker 运行的 spring-config-sever 项目。我可以从命令行运行它,我的其他服务和浏览器通过以下方式成功连接:
但是,如果我通过 Docker 运行它,调用会失败。
我的配置服务器有一个 Dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=build/libs/my-config-server-0.1.0.jar
ADD ${JAR_FILE} my-config-server-0.1.0.jar
EXPOSE 8980
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/my-config-server-0.1.0.jar"]
我通过以下方式构建:
docker build -t my-config-server .
我通过以下方式运行它:
docker run my-config-server -p 8980:8980
然后我确认它正在通过
运行码头工人ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cecafdf99fe my-config-server "java -Djava.securit…" 14 seconds ago Up 13 seconds 8980/tcp suspicious_brahmagupta
当我通过 Docker 运行它时,浏览失败并显示“ERR_CONNECTION_REFUSED”并且我的调用服务失败并显示:
找不到 PropertySource:GET 请求时出现 I/O 错误 “http://localhost:8980/aservice/dev”:连接被拒绝(连接 拒绝);
【问题讨论】:
-
看起来主机端口未映射。试试
docker run -p 8980:8980 my-config-server。 -
我认为这是一个好的开始——通过更改每个 Imran 的命令,我可以在 Docker 中运行配置服务器,并在浏览器中查看属性。但是,其他 Dockerized 服务仍然获得
c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8980/aservice/dev": Connection refused。我通过以下方式启动这些服务:docker run -e "SPRING_PROFILES_ACTIVE=dev" -p 3009:8980 -t aservice
标签: spring-boot docker