一个关于docker镜像缓存的问题

陌路散爱 提交于 2019-11-27 07:54:35

今天做了一个应用镜像的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"]

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!