2 回答

TA貢獻1815條經驗 獲得超10個贊
您的 docker 上下文是 ./api,但 go.mod 位于父目錄中,因此 go.mod 不包含在您的映像中。
一種選擇是將 docker 上下文更改為源樹的根目錄(api 的父目錄),然后將文件/目錄從那里復制到映像中。

TA貢獻1712條經驗 獲得超3個贊
我通過以下方式解決這個問題。
go mod init article/api在api目錄。
article
├ client
├ api
│ ├ main.go
│ ├ contoroller
│ │ └ contoroller.go
│ ├ //
│ ├ go.mod
│ ├ go.sum
│ └ Dockerfile
├ nginx
├ go.mod
├ go.sum
└ docker-compose.yml
使固定Docekrfile
FROM golang:latest
ENV GO111MODULE=on
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN go build
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
ENTRYPOINT ["/app/api"]
命令docker-compose down然后docker-compose up --build
- 2 回答
- 0 關注
- 164 瀏覽
添加回答
舉報