④. 基于maven进行打包,多阶段构建
- ①. Dockerfile文件如下所示,在服务器上进行打包成功,启动容器找不到主启动类(文件参考使用)
有哪位大佬如果知道原因,希望可以告知,感谢!!!
# 基于maven:3.5.2-jdk-8-slim这个镜像 FROM maven:3.5.2-jdk-8-slim AS buildapp # 创建一个根目录 WORKDIR /app # 将当前的src和pom.xml文件复制到基于maven:3.5.2-jdk-8-slim的/app目录下 COPY src . COPY pom.xml . # 进行maven的打包,跳过测试阶段 RUN mvn clean package -Dmaven.test.skip=true # 将/app/target的jar包复制到/app/app.jar下 RUN cp target/*.jar app.jar RUN ls -l # 基于jdk的镜像 FROM openjdk:8u282-slim # 如下操作可以让容器时间和虚拟机时间一致 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone LABEL maintainer="845195485@qq.com" # 基于之前构建的buildapp,将/app/app.jar复制到/app.jar COPY --from=buildapp /app/app.jar /app.jar # 暴露8080端口 EXPOSE 8080 ENV JAVA_OPTS="" ENV PARAMS="" ENTRYPOINT [ "sh", "-c", "java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar /app.jar $PARAMS" ]
②. 启动命令如下
docker run -e JAVA_OPTS="-Xmx512m -Xms33 -" -e PARAMS="--spring.profiles=dev --server.port=8080" -jar /app/app.jar