如何解决无法在 Dockerfile 中使用 EXPOSE 公开端口
我正在尝试公开一个 JMX 端口以从 minikube 监控 SpringBoot 应用程序。 所以我在 Dockerfile 中添加了 EXPOSE 9010,然后在 deployment.yaml 中
- containerPort: 9010
- name: JAVA_OPTS
value: "-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.rmi.port=9010 \
-Djava.rmi.server.hostname=127.0.0.1"
但是,端口没有暴露。我在这里遗漏了什么吗?
尝试端口转发时出现以下错误
Handling connection for 9010
E0223 11:48:52.999502 17966 portforward.go:400] an error occurred forwarding 9010 -> 9010: error forwarding port 9010 to pod 4dc803f4d28b82b98dbc0e8fc1448d760f98694e026fb74511b2b8957aa88ef3,uid : exit status 1: 2021/02/23 06:18:52 socat[16604] E connect(5,AF=2 127.0.0.1:9010,16): Connection refused
Dockerfile:
FROM openjdk:11
WORKDIR /
ADD target/usgagg-service-0.0.1-SNAPSHOT.jar //
EXPOSE 9010
ENTRYPOINT ["java","-Dspring.profiles.active=local","-jar","usgagg-service-0.0.1-SNAPSHOT.jar"]
注意:Springboot server.port 是 8080,我没有创建任何服务来公开 8080 端口,我刚刚在 deployment.yaml 中添加了容器端口,它工作正常。我只有 9010 有问题
更新: 问题通过将 Dockerfile 中的 ENTRYPOINT 修改为下面来解决。
ENTRYPOINT exec java $JAVA_OPTS -Dspring.profiles.active=local -jar /usgagg-service-0.0.1-SNAPSHOT.jar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。