feat: Dockerfile

This commit is contained in:
wolter 2025-12-05 14:48:49 +08:00
parent f2638b32b5
commit 325ea8d78c
3 changed files with 33 additions and 13 deletions

View File

@ -1,3 +1,25 @@
## 使用官方Go镜像作为构建环境
FROM golang:1.24.0-alpine AS builder
# 设置工作目录
WORKDIR /app
# 使用国内镜像源加速APK包下载
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 使用国内镜像源加速依赖下载
ENV GOPROXY=https://goproxy.cn,direct
# 复制项目源码
COPY . .
# 复制go模块依赖文件
COPY go.mod go.sum ./
RUN go mod download
# 编译Go应用程序生成静态链接的二进制文件
RUN go build -ldflags="-s -w" -o server ./cmd/server
# 创建最终镜像用于运行编译后的Go程序 # 创建最终镜像用于运行编译后的Go程序
FROM alpine FROM alpine
@ -12,10 +34,10 @@ RUN echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories \
WORKDIR /app WORKDIR /app
# 将编译好的二进制文件从构建阶段复制到运行阶段 # 将编译好的二进制文件从构建阶段复制到运行阶段
COPY ./ /app COPY --from=builder /app/server ./server
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai
# 设置容器启动时运行的命令 # 设置容器启动时运行的命令
CMD ["./bin/server"] CMD ["./server"]

View File

@ -1,9 +1,9 @@
export GO111MODULE=on #export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct #export GOPROXY=https://goproxy.cn,direct
export GOPATH=/root/go #export GOPATH=/root/go
export GOCACHE=/root/.cache/go-build #export GOCACHE=/root/.cache/go-build
export CONTAINER_NAME=ai_scheduler export CONTAINER_NAME=ai_scheduler
export CGO_ENABLED='0' #export CGO_ENABLED='0'
MODE="$1" MODE="$1"
@ -22,8 +22,8 @@ fi
git fetch origin git fetch origin
git checkout "$BRANCH" git checkout "$BRANCH"
git pull origin "$BRANCH" git pull origin "$BRANCH"
go mod tidy #go mod tidy
make build #make build
docker build -t ${CONTAINER_NAME} . docker build -t ${CONTAINER_NAME} .
docker stop ${CONTAINER_NAME} docker stop ${CONTAINER_NAME}
docker rm -f ${CONTAINER_NAME} docker rm -f ${CONTAINER_NAME}

6
go.mod
View File

@ -2,8 +2,6 @@ module ai_scheduler
go 1.24.0 go 1.24.0
toolchain go1.24.7
require ( require (
gitea.cdlsxd.cn/self-tools/l_request v1.0.8 gitea.cdlsxd.cn/self-tools/l_request v1.0.8
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.12 github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.12
@ -23,8 +21,6 @@ require (
github.com/spf13/viper v1.17.0 github.com/spf13/viper v1.17.0
github.com/tmc/langchaingo v0.1.13 github.com/tmc/langchaingo v0.1.13
google.golang.org/grpc v1.64.0 google.golang.org/grpc v1.64.0
google.golang.org/protobuf v1.34.1
gopkg.in/yaml.v3 v3.0.1
gorm.io/driver/mysql v1.6.0 gorm.io/driver/mysql v1.6.0
gorm.io/gorm v1.31.0 gorm.io/gorm v1.31.0
xorm.io/builder v0.3.13 xorm.io/builder v0.3.13
@ -82,5 +78,7 @@ require (
golang.org/x/sys v0.31.0 // indirect golang.org/x/sys v0.31.0 // indirect
golang.org/x/text v0.23.0 // indirect golang.org/x/text v0.23.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
google.golang.org/protobuf v1.34.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
) )