第一步、基于centos镜像制作JDK8镜像
# 1、Dockerfile ------------------------------------------------ FROM centos:latest MAINTAINER "Xiangyun Kong stallonely@163.com" ADD jdk-8u291-linux-x64.tar.gz /usr/local/java ENV JAVA_HOME /usr/local/java/jdk1.8.0_291 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH $PATH:$JAVA_HOME/bin CMD java -version ------------------------------------------------ # 2、构建镜像 docker build -t jdk1.8.0_291 . # 3、运行测试镜像 docker run -d jdk1.8.0_291
第二步、基于JDK8镜像制作自定义jar镜像
# 1、Dockerfile ------------------------------------------------ FROM jdk1.8.0_291 MAINTAINER "Xiangyun Kong stallonely@163.com" ADD service-1.0-SNAPSHOT.jar /opt/app.jar RUN chmod +x /opt/app.jar # 指定时区 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "/home/springboot/app.jar"] # RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone CMD java -jar /opt/app.jar ------------------------------------------------ # 2、构建镜像 docker build -t service-1.0 .
3、springboot的多环境配置
springboot支持多个配置文件在不同环境下的切换
如:application.yml中配置的profiles.active: dev
Dockerfile中增加如下配置:
ENTRYPOINT [“java”, “-Djava.security.egd=file:/dev/./urandom”, “-jar”, “-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}”, “/home/springboot/app.jar”]
docker run时指定如下条件
-e SPRING_PROFILES_ACTIVE=“dev” \
Q.E.D.