DockerFile文件编写
使用Java8和maven作为模版
# 使用官方Java 8运行时环境作为基础镜像
FROM rlon008/gcloud-docker-maven-jdk8
# 设置工作目录为/app
WORKDIR /app
# 设置环境变量,例如可以设置时区,避免Java安全警告
ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" SERVER_PORT=8080
# 暴露应用程序端口,根据你的应用程序实际使用的端口进行调整
EXPOSE ${SERVER_PORT}
# 将本地的pom.xml和src目录复制到工作目录
# 这样做可以在Docker容器内构建项目,避免将大的JAR文件复制到容器中
COPY pom.xml /app/pom.xml
COPY src /app/src
# 运行Maven构建命令,构建项目并生成JAR文件
# 这里使用-Dmaven.test.skip=true跳过测试,加快构建速度
RUN mvn -f /app/pom.xml clean package -Dmaven.test.skip=true -P test
# 将构建的JAR文件复制到/app目录
# 确保使用正确的JAR文件名,这里假设JAR文件位于target目录下
COPY target/*.jar /app/app.jar
# 指定容器启动时执行的命令,运行JAR文件
#ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
# # 应用名称 如果想区分集群节点监控 改成不同的名称即可
# -XX:+HeapDumpOnOutOfMemoryError ${JAVA_OPTS} \
# -jar app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=${SERVER_PORT}", "-XX:+HeapDumpOnOutOfMemoryError", "${JAVA_OPTS}", "-jar", "app.jar"]
使用Java8作为镜像
# 使用官方Java 8运行时环境作为基础镜像
FROM openjdk:8u141-jdk
# 设置工作目录为/app
WORKDIR /app
# 设置环境变量,例如可以设置时区,避免Java安全警告
ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" SERVER_PORT=8080
# 暴露应用程序端口,根据你的应用程序实际使用的端口进行调整
EXPOSE ${SERVER_PORT}
#RUN mvn clean package -Dmaven.test.skip=true -P prod
#docker build --no-cache -t fast-compensate-back:1.0.0 .
# 将构建的JAR文件复制到/app目录
# 确保使用正确的JAR文件名,这里假设JAR文件位于target目录下
COPY target/*.jar /app/app.jar
# 指定容器启动时执行的命令,运行JAR文件
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
-XX:+HeapDumpOnOutOfMemoryError ${JAVA_OPTS} \
-jar app.jar
评论区