Files
EchoChat/backend/go-service/Dockerfile
bujinyuan 4d03215fe4 feat: Phase 1 完成 — 基础设施 + 用户认证 + 管理端 + 端到端验证
Phase 1 (基础设施与用户认证) 全部 11 个 Task 开发完成:

后端 (Go):
- Auth 模块: 注册/登录/JWT(有状态)/Profile/密码修改
- Admin 模块: 用户列表/详情/禁用/启用/角色分配/创建用户
- 中间件: JWT认证 + RBAC角色权限 + 请求日志 + CORS + Panic恢复
- Dockerfile 多阶段构建 + Docker Compose 全栈部署

前台 (uni-app):
- 登录/注册页面 + 自定义 TabBar + 个人中心
- 请求封装 + 状态管理 (Pinia)

管理端 (Vue 3 + Element Plus):
- 登录/仪表盘/用户列表/用户详情
- Axios 封装 + 路由守卫 + Pinia 状态管理

验证:
- 全流程 API 端到端测试通过
- Playwright 页面自动化验证通过
- code-reviewer 代码审查通过

Made-with: Cursor
2026-03-02 11:31:24 +08:00

49 lines
1.2 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.

# ============================================================
# EchoChat Go 后端服务 Dockerfile
# 多阶段构建:编译阶段 → 运行阶段alpine 最小镜像)
# ============================================================
# --- 第一阶段:编译 ---
FROM golang:1.23-alpine AS builder
# 安装编译依赖CGO 需要 gcc
RUN apk add --no-cache gcc musl-dev
WORKDIR /build
# 先复制依赖文件利用 Docker 缓存层
COPY go.mod go.sum ./
RUN go mod download
# 复制全部源码并编译
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /build/echochat ./cmd/server
# --- 第二阶段:运行 ---
FROM alpine:3.19
# 安装运行时依赖(时区数据 + CA 证书)
RUN apk add --no-cache ca-certificates tzdata
# 设置时区为上海
ENV TZ=Asia/Shanghai
WORKDIR /app
# 从编译阶段复制二进制文件
COPY --from=builder /build/echochat .
# 复制配置文件目录
COPY --from=builder /build/config ./config
# 创建日志目录
RUN mkdir -p /app/logs
EXPOSE 8085
# 健康检查
HEALTHCHECK --interval=10s --timeout=3s --start-period=5s --retries=3 \
CMD wget -q -O /dev/null http://localhost:8085/health || exit 1
CMD ["./echochat"]