12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # 使用官方的 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"]
|