Dockerfile-01

# 基础镜像
FROM openjdk:8-jre-alpine

# 设置工作目录
WORKDIR /u01/app/

# 声明构建参数(用于构建时传递JAR文件路径)
#ARG JAR_FILE
#COPY ${JAR_FILE} /u01/app/omsp/app.jar

copy omspflowgine.jar /u01/app/omspflowgine.jar

# 设置默认环境变量(可被docker run覆盖)
ENV JAVA_OPTS=""
ENV APP_PARAMS=""
ENV LOG_DIR="/var/log/app"

# 创建日志目录
RUN mkdir -p ${LOG_DIR}

# 挂载点声明
VOLUME ["/config", "/data", "/var/log/app"]

# 使用ENTRYPOINT+CMD组合实现参数覆盖
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /u01/app/omspflowgine.jar ${APP_PARAMS} > ${LOG_DIR}/omspflowgine.log 2>&1"]



构建及启动示例
#!/bin/bash
# 构建镜像(假设JAR文件在target目录)
docker build -t omspflowgine-image:1.0 --build-arg JAR_FILE=target/*.jar .

# 运行容器并动态配置
docker run -d --name omspflowgine-container \
  -e JAVA_OPTS="-Dspring.profiles.active=prod -Xmx512m -Dnacos_server_addr=192.168.x.x:8848" \
  -e APP_PARAMS="--server.port=8080" \
  -v /host/config:/config \
  -v /host/data:/data \
  -v /host/logs:/var/log/app \
  -p 8080:8080 \
  omspflowgine-image:1.0



代码功能说明:

1、Dockerfile特点:
通过ARG接收构建时JAR文件路径
使用ENV定义可覆盖的默认环境变量
VOLUME声明挂载点便于数据持久化
ENTRYPOINT+sh -c组合支持参数扩展


2、启动脚本功能:
支持通过-e覆盖JVM参数和应用参数
通过-v挂载配置文件、数据目录和日志目录
日志重定向到挂载目录实现持久化

3、
使用方式:
构建时:./run.sh(会自动构建并运行)
动态配置:
JAVA_OPTS传递JVM参数如-D开头的系统属性
APP_PARAMS传递应用特定参数
挂载目录需提前在宿主机创建

 

posted @ 2025-09-01 14:39  scwyfy  阅读(7)  评论(0)    收藏  举报