# 使用OpenJDK 8作为基础镜像 FROM openjdk:8-jre-alpine # 设置工作目录 WORKDIR /app # 创建证书目录 RUN mkdir -p /app/certs/wechat /app/certs/alipay # 设置证书目录权限 RUN chmod 755 /app/certs /app/certs/wechat /app/certs/alipay # 复制应用JAR文件 COPY target/com-gxwebsoft-server-*.jar app.jar # 设置环境变量 ENV JAVA_OPTS="-Xms512m -Xmx1024m" ENV SPRING_PROFILES_ACTIVE=prod ENV CERTIFICATE_LOAD_MODE=VOLUME ENV CERTIFICATE_CERT_ROOT_PATH=/app/certs # 暴露端口 EXPOSE 8080 # 健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/actuator/health || exit 1 # 启动应用 ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar"] # 证书挂载点说明 # 在运行容器时,需要将证书目录挂载到 /app/certs # 例如:docker run -v /host/certs:/app/certs your-image # # 证书目录结构应该如下: # /app/certs/ # ├── wechat/ # │ ├── apiclient_key.pem # │ ├── apiclient_cert.pem # │ └── wechatpay_cert.pem # └── alipay/ # ├── app_private_key.pem # ├── appCertPublicKey.crt # ├── alipayCertPublicKey.crt # └── alipayRootCert.crt