From 5ec40b4501fc023f8f7596c39c15342a227c1873 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Thu, 12 Jun 2025 15:02:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0docker=E5=8F=8A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9docker=E4=B8=AD=E8=AF=BB=E5=8F=96=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BF=A1=E6=81=AF=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 33 +++++++++++++++++++++++++++++++++ main.go | 6 +++--- 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7d30b18 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +# 第一阶段:使用最新Go版本构建 +FROM docker.1ms.run/golang:1.24 AS builder + +WORKDIR /app + +ENV GOPROXY=https://goproxy.cn,direct + + +# 复制go.mod和go.sum以缓存依赖 +COPY go.mod go.sum ./ +RUN go mod download + +# 复制源代码并构建 +COPY . . +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags="-s -w" -o videoplayer . + +# 第二阶段:生产环境(最小化镜像) +FROM scratch + +# 复制配置文件 +COPY --from=builder /app/vp.conf /home/saw/saw-ai.conf + +# 复制二进制文件 +COPY --from=builder /app/StuAcaWorksAI /home/saw/StuAcaWorksAI + +# 设置工作目录 +WORKDIR /home/saw + +# 暴露端口 +EXPOSE 8084 + +# 运行应用 +CMD ["./StuAcaWorksAI"] \ No newline at end of file diff --git a/main.go b/main.go index f9853d0..d034d6c 100644 --- a/main.go +++ b/main.go @@ -68,12 +68,12 @@ func init() { //系统是linux、macos还是windows var configPath string if os.Getenv("OS") == "Windows_NT" { - configPath = "E:/Code/saw-ai/saw-ai.conf" + configPath = "C:/saw/saw-ai.conf" } else if os.Getenv("OS") == "linux" { //文件地址/home/saw-ai/saw-ai.conf - configPath = "/home/saw/saw-ai-go/saw-ai.conf" + configPath = "/home/saw/saw-ai.conf" } else { - configPath = "/home/saw/saw-ai-go/saw-ai.conf" + configPath = "/home/saw/saw-ai.conf" } //读取配置文件 err := proto.ReadConfig(configPath)