首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何收听码头港口?

如何收听码头港口?
EN

Stack Overflow用户
提问于 2017-12-12 15:57:58
回答 1查看 3.2K关注 0票数 1

我正在尝试配置一个docker文件,以便在脚本准备就绪后运行它。

基本上,我希望我的微服务可以等待,直到另一个服务可以启动。我正在学习一本书中的教程,所以我有这个dockerfile:

代码语言:javascript
复制
FROM openjdk:8-jdk-alpine
RUN  apk update && apk upgrade && apk add netcat-openbsd
ARG JAR_FILE
ADD target/${JAR_FILE} /usr/share/theexplorer/theexplorer.jar
ADD run.sh run.sh
RUN chmod +x run.sh
CMD ./run.sh
EXPOSE 8761

我有一个脚本(run.sh):

代码语言:javascript
复制
echo "********************************************************"
echo "Waiting for the configuration server to start on port $CONFIGSERVER_PORT"
echo "********************************************************"
while ! `nc -z configserver $CONFIGSERVER_PORT `; do sleep 3; done
echo ">>>>>>>>>>>> Configuration Server has started"
java -jar /usr/share/theexplorer/theexplorer.jar

但是$CONFIGSERVER_PORT的值是空的。我不知道如何使用这个变量,因为我在调用run.sh时没有传递任何参数。那么,我应该如何设置$CONFIGSERVER_PORT呢?有什么聪明的方法来知道我的服务所依赖的服务端口吗?

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 16:39:38

docker run -itd -p 5555:8761 myimage/myimage将主机端口5555映射到容器端口8761。对于等待的“其他”服务,它的工作原理是一样的,因此此时您不依赖于动态主机端口映射。这样您就可以知道每个服务的端口。

在此情况下,可以在localhost:5555上找到正在运行的服务容器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47776692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档