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
|