1. DockerFile文件 ARG BUILDER_IMAGE=maven:3-jdk8 ARG RUNNER_IMAGE=java:8-jre ################ # Maven构建阶段 ################ FROM $BUILDER_IMAGE as builder # Maven工作区 WORKDIR /workspace # 复制源码 COPY . ./ # 执行构建 RUN mvn --batch-mode \ --errors \ --define maven.test.skip=true \ --define java.awt.headless=true \ clean package ################ # 最终构建阶段 ################ FROM $RUNNER_IMAGE as runner # 设置工作目录 WORKDIR /support-release # 复制构建产物 COPY --from=builder /workspace/target/support-release/support /support-release # 启动脚本可执行权限 RUN chmod +x /support-release/support.sh # 项目启动命令 ENTRYPOINT ["/support-release/support.sh", "start"] 2.启动文件 需要用前台进程运行,后台运行不成功 function start() { # 运行为后台进程,并在控制台输出信息 #java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} & # 运行为后台进程,并且不在控制台输出信息 # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 & # 运行为后台进程,并且将信息输出到 output.log 文件 # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log & # 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务 java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} }