# Dockerfile
FROM golang:1.21-alpine AS builder

# 安装构建依赖
RUN apk add --no-cache git nodejs npm

# 设置工作目录
WORKDIR /app

# 复制go模块文件
COPY go.mod go.sum ./
RUN go mod download

# 复制前端文件
COPY frontend/ ./frontend/
RUN cd frontend && npm install && npm run build

# 复制源代码
COPY . .

# 构建应用
RUN wails build -clean

# 运行阶段
FROM alpine:latest

# 安装运行时依赖
RUN apk add --no-cache ca-certificates tzdata

# 创建非root用户
RUN addgroup -g 1001 -S appgroup && \
    adduser -u 1001 -S appuser -G appgroup

# 设置工作目录
WORKDIR /app

# 复制可执行文件
COPY --from=builder /app/build/bin/equipment-analyzer .

# 设置权限
RUN chown -R appuser:appgroup /app

# 切换到非root用户
USER appuser

# 暴露端口（如果需要）
EXPOSE 8080

# 启动应用
CMD ["./equipment-analyzer"]