今天做了一个应用镜像的demo,开始的时候,设置的应用的端口是21003,之后,因为docker对外的expose端口是80,为了统一化,遂将应用的启动端口也设置成了80端口,然而,噩梦就来了,无论如何改正,应用启动的端口都是21003端口;进入到docker的容器中,发现,jar中的server.port早就已经更改成了80端口,在容器中启动java -jar server-provider.jar,发现启动的仍然是21003端口;
容器的dockerFile是这样事儿的:
FROM 10.110.152.173:80/base_env/centos:7.6
WORKDIR /root/services
ADD server-provider/target/server-provider.jar provider/
EXPOSE 80
ENTRYPOINT ["java","-jar","provider/server-provider.jar"]
依赖的容器dockerFile是这样事儿的
FROM centos:7.6.1810
LABEL maintainer=caoyong1
WORKDIR /root
RUN mkdir jdk && mkdir services
COPY jdk1.8.0_231 jdk/jdk1.8
ENV JAVA_HOME=/root/jdk/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
COPY *.repo /etc/yum.repos.d/
RUN yum clean all && yum makecache && yum install -y epel-release && yum clean all && yum makecache
RUN yum -y install iputils && yum -y install net-tools.x86_64 && yum install -y redhat-lsb && yum -y install bridge-utils && yum -y install traceroute && yum -y install vim*
应用的配置是这样事儿的:
server:
port: 80
tomcat:
max-threads: 1000
spring:
application:
name: server-provider
zipkin:
base-url: http://127.0.0.1:9411
profiles:
active: test
ribbon:
OkToRetryOnAllOperations: false #对所有操作请求都进行重试,默认false
ReadTimeout: 15000 #负载均衡超时时间,默认值5000
ConnectTimeout: 10000 #ribbon请求连接的超时时间,默认值2000
MaxAutoRetries: 2 #对当前实例的重试次数,默认0
MaxAutoRetriesNextServer: 4 #对切换实例的重试次数,默认1
hystrix:
command:
default: #default全局有效,server id指定应用有效
execution:
timeout:
#是否开启超时熔断
enabled: true
isolation:
thread:
timeoutInMilliseconds: 1000 #断路器超时时间,默认1000ms
eureka:
client:
service-url:
defaultZone: ${REGISTER_SERVER}/eureka/
instance:
prefer-ip-address: true
metadata-map:
topic: xxxxxxxxxxxxxxxxxxxxx
最终,我在dockerfile中添加了一个清除语句,竟然神奇的work了。。。。。。
RUN rm -rf /root/services/*
FROM 10.110.152.173:80/base_env/centos:7.6
WORKDIR /root/services
RUN rm -rf /root/services/*
ADD server-provider/target/server-provider.jar provider/
EXPOSE 80
ENTRYPOINT ["java","-jar","provider/server-provider.jar"]
来源:CSDN
作者:月夜楓
链接:https://blog.csdn.net/cyxinda/article/details/103242570