diff --git a/.drone.yml b/.drone.yml index 053212c..bd9b59c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -28,44 +28,37 @@ steps: - pwd # - git clone http://47.112.165.44:3000/seekm/prdUploader.git - - name: build - image: golang:1.21-alpine - pull: never - environment: - GO111MODULE: on - CGO_ENABLED: 0 - GOPROXY: https://goproxy.cn - GOMODCACHE: /go/pkg/mod - volumes: - - name: shared-folder - path: /workspace - - name: go-cache - path: /go/pkg/mod - commands: - - echo "Building binary..." - - cd /workspace/prdUploader - - pwd - - echo $GOMODCACHE - - go mod tidy -# - go build -o myapp -ldflags "-X main.RunMode=test -s -w" - - echo "Building binary finished" - - ls -lh myapp +# - name: build +# image: golang:1.21-alpine +# pull: never +# environment: +# GO111MODULE: on +# CGO_ENABLED: 0 +# GOPROXY: https://goproxy.cn +# GOMODCACHE: /go/pkg/mod +# volumes: +# - name: shared-folder +# path: /workspace +# - name: go-cache +# path: /go/pkg/mod +# commands: +# - echo "Building binary..." +# - cd /workspace/prdUploader +# - pwd +# - echo $GOMODCACHE +# - go mod tidy +## - go build -o myapp -ldflags "-X main.RunMode=test -s -w" +# - echo "Building binary finished" +# - ls -lh myapp - name: deploy image: docker:24.0-cli pull: never - environment: - GO111MODULE: on - CGO_ENABLED: 0 - GOPROXY: https://goproxy.cn - GOMODCACHE: /go/pkg/mod volumes: - name: shared-folder path: /workspace - name: docker-sock path: /var/run/docker.sock - - name: go-cache - path: /go/pkg/mod commands: - echo "Building Docker image..." - cd /workspace/prdUploader diff --git a/Dockerfile b/Dockerfile index 76bb851..f61842b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,24 @@ # 使用最小化的基础镜像 (Alpine) -FROM alpine:latest +FROM golang:1.21-alpine AS builder # 设置工作目录 -WORKDIR /app +WORKDIR /workspace -# 将编译好的可执行文件复制到容器内的工作目录 -COPY myapp /app/ +# 将代码复制到容器内(你也可以选择在构建过程中通过挂载代码) +COPY . . -# 暴露容器的端口 +# 设置 Go 模块缓存和构建缓存目录 +ENV GOMODCACHE=/go/pkg/mod +ENV GOCACHE=/go/cache + +# 执行 go mod tidy 来同步和清理模块依赖 +RUN go mod tidy + +# 编译可执行文件 +RUN go build -o myapp -ldflags "-X main.RunMode=test -s -w" + +# 暴露容器端口 EXPOSE 11000 -# 设置容器启动时执行的命令 +# 运行应用程序 CMD ["./myapp"]