第一步、基于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.


行走在天地间自由的灵魂