一、制作一个基础openjdk镜像
基于 openjdk:8u191-jdk-alpine3.9制作一个基础镜像,把必须的依赖和时区都调整好
- Dockerfile
FROM openjdk:8u191-jdk-alpine3.9
MAINTAINER zong_b
# 设置时区;添加字体,以支持导出Excel
RUN set -eux && sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk del tzdata \
&& apk --no-cache add ttf-dejavu fontconfig
- build并推送至镜像仓库:
docker build -t harbor.bidr.com.cn/library/openjdk-bidr:8u191-jdk-alpine3.9 .
docker push harbor.bidr.com.cn/library/openjdk-bidr:8u191-jdk-alpine3.9
二、使用基础镜像制作springboot Dockerfile
cat > Dockerfile <<EOF
FROM harbor.bidr.com.cn/library/openjdk-bidr:8u191-jdk-alpine3.9
MAINTAINER zong_b
# jar包位置,可以通过docker build --build-arg 传递参数
ARG JAR_NAME
VOLUME /tmp
# env ,可以通过docker run -e进行覆盖
ENV JAVA_OPTS=""
ENV SPRING_OPTS=""
ADD $JAR_NAME /app.jar
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -jar /app.jar $SPRING_OPTS"]
EOF
- Jenkins Pipeline中,使用此基础镜像构建新镜像时,可以通过JAR_NAME指定jar包位置,比如:
docker build -f ./Dockerfile -t test:0.0.1 --build-arg JAR_NAME=./target/*.jar .
- 启动jar包时,可以通过JAVA_OPTS和PARAMS两个参数来分别指定JVM参数和spring参数
docker run -d -p 9011:9011 -p 9012:9012 \\
-e JAVA_OPTS="-Xmx1g -Xms1g -Djava.security.egd=file:/dev/.urandom" \\
-e PARAMS="--server.port=9011 --spring.profiles.active=test --xxl-job.executor.ip=10.3.23.191 --xxl-job.executor.port=9012" \\
--restart always test:0.0.1








网友评论