Files
core/Dockerfile
2025-07-27 00:12:02 +08:00

47 lines
1.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用OpenJDK 17作为基础镜像
FROM openjdk:17-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