侧边栏壁纸
博主头像
winson的blog博主等级

行动起来,活在当下

  • 累计撰写 31 篇文章
  • 累计创建 37 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

DockerFile文件编写

winson
2024-08-19 / 0 评论 / 0 点赞 / 3 阅读 / 2950 字

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
0

评论区