From fdf524a17274f2a508d191fdaa471327583e72c6 Mon Sep 17 00:00:00 2001 From: xujiang Date: Wed, 16 Jul 2025 15:02:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E5=81=A5=E5=BA=B7?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E8=84=9A=E6=9C=AC=E5=92=8C=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将健康检查命令从`/photography-api --health-check`更新为使用新的脚本`/usr/local/bin/health-check.sh` - 在Dockerfile中添加`wget`作为运行时依赖 - 确保健康检查脚本具有执行权限 此更改提升了健康检查的可靠性和灵活性。 --- CLAUDE.md | 2 +- backend/Dockerfile | 12 +++++++----- backend/docker-compose.prod.yml | 2 +- backend/docker-compose.yml | 2 +- backend/health-check.sh | 12 ++++++++++++ 5 files changed, 22 insertions(+), 8 deletions(-) create mode 100755 backend/health-check.sh diff --git a/CLAUDE.md b/CLAUDE.md index dabfee0..0a30f28 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,6 @@ # Photography Portfolio - 项目总览 -> 📍 这是一个模块化摄影作品集项目,所有模块都有独立的CLAUDE.md文件 +> 📍 这是一个模块化摄影作品集项目,所有模块都有独立的CLAUDE.md文件,所有给我的提示都要用中文 ## 🎯 项目结构 diff --git a/backend/Dockerfile b/backend/Dockerfile index b4e4d17..7e4fb59 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -45,8 +45,8 @@ FROM alpine:3.19 # 配置镜像源加速 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories -# 安装运行时依赖 (包含SQLite动态库) -RUN apk add --no-cache ca-certificates tzdata sqlite +# 安装运行时依赖 (包含SQLite动态库和wget用于健康检查) +RUN apk add --no-cache ca-certificates tzdata sqlite wget # 创建非root用户 RUN addgroup -g 1001 -S appgroup && \ @@ -61,10 +61,12 @@ COPY --from=builder /app/configs /configs COPY --from=builder /app/scripts /scripts COPY --from=builder /app/pkg/migration /pkg/migration COPY --from=builder /app/etc /etc +COPY --from=builder /app/health-check.sh /usr/local/bin/health-check.sh -# 设置目录权限 +# 设置目录权限和脚本权限 RUN mkdir -p /app && \ - chown -R appuser:appgroup /app + chown -R appuser:appgroup /app && \ + chmod +x /usr/local/bin/health-check.sh # 设置时区 ENV TZ=Asia/Shanghai @@ -80,7 +82,7 @@ EXPOSE 8080 # 健康检查 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ - CMD ["/usr/local/bin/photography-api", "--health-check"] + CMD /usr/local/bin/health-check.sh # 启动应用 ENTRYPOINT ["/usr/local/bin/photography-api"] \ No newline at end of file diff --git a/backend/docker-compose.prod.yml b/backend/docker-compose.prod.yml index 9801d71..4ff0969 100644 --- a/backend/docker-compose.prod.yml +++ b/backend/docker-compose.prod.yml @@ -52,7 +52,7 @@ services: - logs_data:/app/logs restart: unless-stopped healthcheck: - test: ["CMD", "/photography-api", "--health-check"] + test: ["CMD", "/usr/local/bin/health-check.sh"] interval: 30s timeout: 10s retries: 3 diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 437440e..a9eeea3 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -52,7 +52,7 @@ services: - logs_data:/app/logs restart: unless-stopped healthcheck: - test: ["CMD", "/photography-api", "--health-check"] + test: ["CMD", "/usr/local/bin/health-check.sh"] interval: 30s timeout: 10s retries: 3 diff --git a/backend/health-check.sh b/backend/health-check.sh new file mode 100755 index 0000000..e66311b --- /dev/null +++ b/backend/health-check.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# 健康检查脚本 +# 用于Docker健康检查和Kubernetes探针 + +# 检查健康检查端点 +if wget --no-verbose --tries=1 --spider http://localhost:8080/api/v1/health; then + echo "Health check passed" + exit 0 +else + echo "Health check failed" + exit 1 +fi \ No newline at end of file