47 lines
1.3 KiB
Docker
47 lines
1.3 KiB
Docker
# 使用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
|