######################### phase one #########################
FROM registry.cn-hangzhou.aliyuncs.com/ggcimages/dev-env:maven--3-java-21-debian-bookworm AS compile_stage

RUN mkdir /opt/build
WORKDIR /opt/build

# 复制项目代码到构建目录： /opt/build/pom.xml, /opt/build/src, /opt/build/src/main/java, /opt/build/src/main/resources。
COPY . /opt/build/

# 复制 MAVEN 设置文件到默认的配置目录，如果 settings.xml 依赖源配置失效，注释掉下面 COPY 代码，改用项目中 pom.xml 文件设置的依赖源。
#COPY settings-hz3r.xml /usr/share/maven/conf/settings.xml

# 清理 -> 构建 -> 打包, -X 打印调试信息。
RUN mvn clean package -U -DskipTests --color auto
#RUN mvn clean package -U -DskipTests --color auto -f pom.jar.xml
#RUN mvn clean package -U -DskipTests -X -e --color auto -f pom.jar.xml

######################### phase two #########################
#FROM registry.cn-hangzhou.aliyuncs.com/ggcimages/dev-env:openjdk--21-ea-buster
FROM registry.cn-hangzhou.aliyuncs.com/ggcimages/dev-env:eclipse-temurin--21-jre-noble

WORKDIR /app

ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 TZ=Asia/Shanghai
ENV JAVA_OPTS=""
ENV APP_NAME='zjjhyiwuyq'
ENV LOGS_PATH=/var/log/app/${APP_NAME} LOG_FILE="app"
RUN mkdir -p /var/log/app

# 应用信息配置
ENV APP_JAR_NAME=business-webapi-1.0.0
ENV PROFILE=dev
ENV API_PORT=8100
ENV API_PATH=api

# AES 等保要求等安全加密配置
ENV AB_SECRET_KEY==zSuAV19ef1e59B3F884C9B2024920==
ENV AB_SECRET_IV=zSUAVPT119ef9f==

# 运行配置
ENV SQL_LOGGING_LEVEL=false
ENV SQL_AGC_LOGGING_LEVEL=false
ENV SQL_SHARE_LOGGING_LEVEL=false
ENV REDIS_ENABLED=false
ENV REDIS_HOST=172.16.10.109
ENV REDIS_PORT=6379
ENV REDIS_PASSWD=''
ENV MYSQL_HOST=172.16.10.109
ENV MYSQL_PORT=3306
ENV MYSQL_USER=zjjhyiwuyq
ENV MYSQL_PASSWD=zjjhyiwuyq123456
ENV JOB_SERVER_IP='snail-job.domain.com'
ENV JOB_SERVER_PORT=50051
ENV JOB_NAMESPACE=764d604ec6fc45f68cd92514c40e9e1a
ENV JOB_GROUP=zjjhyiwuyq_group
ENV JOB_TOKEN=SJ_Wyz3dmsdbDOkDujOTSSoBjGQP1BMsVnj
ENV JWT_KEY='L3jB6cR1sN5xZ8a'
ENV LOCAL_OSS_DIRECTORY=''
ENV OSS_BUCKET_NAME='zjjhyiwuyq'
ENV OSS_SERVER='http://172.16.10.100:9192/'
ENV OSS_ACCESS_KEY='CMBoDkjkRb457oxCj7ys'
ENV OSS_ACCESS_SECRET='8uJmULkUFORiTYNfDtj3VBXEwgAgBLNmIYOFi6sN'
ENV OSS_PUBLIC_ENTRY='http://zjjhyiwuyq.hz3r.cn/'
ENV ENABLE_TASK_PAYMENT=true

ENV LD_LIBRARY_PATH /app/lib/linux64/lib:/app/lib/linux64/lib/HCNetSDKCom:${LD_LIBRARY_PATH}


# 拷贝依赖库到系统，使用系统默认的加载库路径，在系统的/usr/lib文件中加入你Java工程所需要使用的so文件，然后将HCNetSDKCom文件夹下的组件库也复制到/usr/lib目录，HCNetSDKCom文件夹中的组件库不要随意更换路径进行替换。CentOS 64位需拷贝/usr/lib64下。
COPY ./lib /app/lib

COPY --from=compile_stage /opt/build/target/business-webapi-1.0.0.jar .
RUN ls -lith | grep business-webapi

EXPOSE 8100


ENTRYPOINT [ "sh", "-c", "java -Duser.timezone=GMT+08 \
 -DLOGS_PATH=${LOGS_PATH} \
 -DSQL_LOGGING_LEVEL=${SQL_LOGGING_LEVEL} \
 -DSQL_AGC_LOGGING_LEVEL=${SQL_AGC_LOGGING_LEVEL} \
 -DSQL_SHARE_LOGGING_LEVEL=${SQL_SHARE_LOGGING_LEVEL} \
 -DREDIS_ENABLED=${REDIS_ENABLED} \
 -DREDIS_PORT=${REDIS_PORT} \
 -DREDIS_PASSWD=${REDIS_PASSWD} \
 -DMYSQL_HOST=${MYSQL_HOST} \
 -DMYSQL_PORT=${MYSQL_PORT} \
 -DMYSQL_USER=${MYSQL_USER} \
 -DMYSQL_PASSWD=${MYSQL_PASSWD} \
 -DJOB_SERVER_IP=${JOB_SERVER_IP} \
 -DJOB_SERVER_PORT=${JOB_SERVER_PORT} \
 -DJOB_NAMESPACE=${JOB_NAMESPACE} \
 -DJOB_GROUP=${JOB_GROUP} \
 -DJOB_TOKEN=${JOB_TOKEN} \
 -DJWT_KEY=${JWT_KEY} \
 -DLOCAL_OSS_DIRECTORY=${LOCAL_OSS_DIRECTORY} \
 -DOSS_BUCKET_NAME=${OSS_BUCKET_NAME} \
 -DOSS_SERVER=${OSS_SERVER} \
 -DOSS_ACCESS_KEY=${OSS_ACCESS_KEY} \
 -DOSS_ACCESS_SECRET=${OSS_ACCESS_SECRET} \
 -DOSS_PUBLIC_ENTRY=${OSS_PUBLIC_ENTRY} \
 -DENABLE_TASK_PAYMENT=${ENABLE_TASK_PAYMENT} \
 -DAPI_PATH=${API_PATH} \
 -DAB_SECRET_KEY=${AB_SECRET_KEY} \
 -Dspring.profiles.active=${PROFILE} \
 -Dserver.port=${API_PORT} \
 -jar /app/${APP_JAR_NAME}.jar " ]


