# 使用官方的 Go 镜像作为构建阶段 FROM golang:1.23 AS builder # 设置工作目录 WORKDIR /app # 安装 SQLite 的开发依赖 RUN apt-get update && apt-get install -y gcc musl-dev sqlite3 libsqlite3-dev # 将 go.mod 和 go.sum 复制到容器中 COPY go.mod go.sum ./ # 下载依赖 RUN go mod download # 将项目代码复制到容器中 COPY . . # 设置 CGO_ENABLED=0 和目标平台为 Linux,编译静态二进制文件 RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main cmd/main.go # 使用轻量级的运行镜像 FROM alpine:latest # 安装必要的动态库 RUN apk --no-cache add ca-certificates # 设置工作目录 WORKDIR /app # 从构建阶段复制二进制文件和其他必要文件 COPY --from=builder /app/main . COPY config.yaml . COPY data/json_files ./data/json_files # 确保二进制文件可执行 RUN chmod +x main # 暴露服务端口 EXPOSE 8080 # 设置默认启动命令 CMD ["./main", "server"]