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