Dockerfile 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. ######################### phase one #########################
  2. FROM registry.cn-hangzhou.aliyuncs.com/ggcimages/dev-env:maven--3-java-21-debian-bookworm AS compile_stage
  3. RUN mkdir /opt/build
  4. WORKDIR /opt/build
  5. # 复制项目代码到构建目录: /opt/build/pom.xml, /opt/build/src, /opt/build/src/main/java, /opt/build/src/main/resources。
  6. COPY . /opt/build/
  7. # 复制 MAVEN 设置文件到默认的配置目录,如果 settings.xml 依赖源配置失效,注释掉下面 COPY 代码,改用项目中 pom.xml 文件设置的依赖源。
  8. #COPY settings-hz3r.xml /usr/share/maven/conf/settings.xml
  9. # 清理 -> 构建 -> 打包, -X 打印调试信息。
  10. RUN mvn clean package -U -DskipTests --color auto
  11. #RUN mvn clean package -U -DskipTests --color auto -f pom.jar.xml
  12. #RUN mvn clean package -U -DskipTests -X -e --color auto -f pom.jar.xml
  13. ######################### phase two #########################
  14. #FROM registry.cn-hangzhou.aliyuncs.com/ggcimages/dev-env:openjdk--21-ea-buster
  15. FROM registry.cn-hangzhou.aliyuncs.com/ggcimages/dev-env:eclipse-temurin--21-jre-noble
  16. WORKDIR /app
  17. ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 TZ=Asia/Shanghai
  18. ENV JAVA_OPTS=""
  19. ENV APP_NAME='zjjhyiwuyq'
  20. ENV LOGS_PATH=/var/log/app/${APP_NAME} LOG_FILE="app"
  21. RUN mkdir -p /var/log/app
  22. # 应用信息配置
  23. ENV APP_JAR_NAME=business-webapi-1.0.0
  24. ENV PROFILE=dev
  25. ENV API_PORT=8100
  26. ENV API_PATH=api
  27. # AES 等保要求等安全加密配置
  28. ENV AB_SECRET_KEY==zSuAV19ef1e59B3F884C9B2024920==
  29. ENV AB_SECRET_IV=zSUAVPT119ef9f==
  30. # 运行配置
  31. ENV SQL_LOGGING_LEVEL=false
  32. ENV SQL_AGC_LOGGING_LEVEL=false
  33. ENV SQL_SHARE_LOGGING_LEVEL=false
  34. ENV REDIS_ENABLED=false
  35. ENV REDIS_HOST=172.16.10.109
  36. ENV REDIS_PORT=6379
  37. ENV REDIS_PASSWD=''
  38. ENV MYSQL_HOST=172.16.10.109
  39. ENV MYSQL_PORT=3306
  40. ENV MYSQL_USER=zjjhyiwuyq
  41. ENV MYSQL_PASSWD=zjjhyiwuyq123456
  42. ENV JOB_SERVER_IP='snail-job.domain.com'
  43. ENV JOB_SERVER_PORT=50051
  44. ENV JOB_NAMESPACE=764d604ec6fc45f68cd92514c40e9e1a
  45. ENV JOB_GROUP=zjjhyiwuyq_group
  46. ENV JOB_TOKEN=SJ_Wyz3dmsdbDOkDujOTSSoBjGQP1BMsVnj
  47. ENV JWT_KEY='L3jB6cR1sN5xZ8a'
  48. ENV LOCAL_OSS_DIRECTORY=''
  49. ENV OSS_BUCKET_NAME='zjjhyiwuyq'
  50. ENV OSS_SERVER='http://172.16.10.100:9192/'
  51. ENV OSS_ACCESS_KEY='CMBoDkjkRb457oxCj7ys'
  52. ENV OSS_ACCESS_SECRET='8uJmULkUFORiTYNfDtj3VBXEwgAgBLNmIYOFi6sN'
  53. ENV OSS_PUBLIC_ENTRY='http://zjjhyiwuyq.hz3r.cn/'
  54. ENV ENABLE_TASK_PAYMENT=true
  55. ENV LD_LIBRARY_PATH /app/lib/linux64/lib:/app/lib/linux64/lib/HCNetSDKCom:${LD_LIBRARY_PATH}
  56. # 拷贝依赖库到系统,使用系统默认的加载库路径,在系统的/usr/lib文件中加入你Java工程所需要使用的so文件,然后将HCNetSDKCom文件夹下的组件库也复制到/usr/lib目录,HCNetSDKCom文件夹中的组件库不要随意更换路径进行替换。CentOS 64位需拷贝/usr/lib64下。
  57. COPY ./lib /app/lib
  58. COPY --from=compile_stage /opt/build/target/business-webapi-1.0.0.jar .
  59. RUN ls -lith | grep business-webapi
  60. EXPOSE 8100
  61. ENTRYPOINT [ "sh", "-c", "java -Duser.timezone=GMT+08 \
  62. -DLOGS_PATH=${LOGS_PATH} \
  63. -DSQL_LOGGING_LEVEL=${SQL_LOGGING_LEVEL} \
  64. -DSQL_AGC_LOGGING_LEVEL=${SQL_AGC_LOGGING_LEVEL} \
  65. -DSQL_SHARE_LOGGING_LEVEL=${SQL_SHARE_LOGGING_LEVEL} \
  66. -DREDIS_ENABLED=${REDIS_ENABLED} \
  67. -DREDIS_PORT=${REDIS_PORT} \
  68. -DREDIS_PASSWD=${REDIS_PASSWD} \
  69. -DMYSQL_HOST=${MYSQL_HOST} \
  70. -DMYSQL_PORT=${MYSQL_PORT} \
  71. -DMYSQL_USER=${MYSQL_USER} \
  72. -DMYSQL_PASSWD=${MYSQL_PASSWD} \
  73. -DJOB_SERVER_IP=${JOB_SERVER_IP} \
  74. -DJOB_SERVER_PORT=${JOB_SERVER_PORT} \
  75. -DJOB_NAMESPACE=${JOB_NAMESPACE} \
  76. -DJOB_GROUP=${JOB_GROUP} \
  77. -DJOB_TOKEN=${JOB_TOKEN} \
  78. -DJWT_KEY=${JWT_KEY} \
  79. -DLOCAL_OSS_DIRECTORY=${LOCAL_OSS_DIRECTORY} \
  80. -DOSS_BUCKET_NAME=${OSS_BUCKET_NAME} \
  81. -DOSS_SERVER=${OSS_SERVER} \
  82. -DOSS_ACCESS_KEY=${OSS_ACCESS_KEY} \
  83. -DOSS_ACCESS_SECRET=${OSS_ACCESS_SECRET} \
  84. -DOSS_PUBLIC_ENTRY=${OSS_PUBLIC_ENTRY} \
  85. -DENABLE_TASK_PAYMENT=${ENABLE_TASK_PAYMENT} \
  86. -DAPI_PATH=${API_PATH} \
  87. -DAB_SECRET_KEY=${AB_SECRET_KEY} \
  88. -Dspring.profiles.active=${PROFILE} \
  89. -Dserver.port=${API_PORT} \
  90. -jar /app/${APP_JAR_NAME}.jar " ]