Browse Source

docker file adjust

泽加武 2 months ago
parent
commit
109d59b2d8
1 changed files with 13 additions and 7 deletions
  1. 13 7
      Dockerfile

+ 13 - 7
Dockerfile

@@ -1,4 +1,4 @@
-# 使用官方的 Go 镜像作为基础镜像
+# 使用官方的 Go 镜像作为构建阶段
 FROM golang:1.23 AS builder
 
 # 设置工作目录
@@ -13,22 +13,28 @@ RUN go mod download
 # 将项目代码复制到容器中
 COPY . .
 
-# 构建可执行文件
-RUN go build -o main cmd/main.go
+# 设置 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"]