记录一下springboot项目中dockerfile编写模板:
FROM harbor.haha.cn/public/openjdk8:jdk8u282-b08-centos
LABEL maintainer="haha@qq.com"
RUN /bin/ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
#ARG用于镜像构建阶段,ENV用于将来运行的容器。
ARG user=app
ARG group=app
ARG uid=68080
ARG gid=68080
#ARG PORT
RUN groupadd -g ${gid} ${group} \
&& useradd -u ${uid} -g ${gid} -m -s /bin/bash ${user}
ENV JAVA_OPTS ""
ENV JAVA_OPT_EXT ""
ENV APP_HOME /app
# 构建镜像时不能使用命令行参数重写ENV,但是你可以使用ARG动态为ENV设置默认值:
ENV EXEC_ARTIFACT hello-springboot.jar
COPY target/hello-springboot.jar ${APP_HOME}/lib/hello-springboot.jar
RUN chown -R ${uid}:${gid} ${APP_HOME}
#RUN if [[ -z "$PORT" ]] ; then echo PORT not provided ; else EXPOSE $PORT ; fi
USER ${user}
WORKDIR ${APP_HOME}/lib
EXPOSE 8088
ENTRYPOINT java -jar $JAVA_OPTS $JAVA_OPT_EXT -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom ${EXEC_ARTIFACT}