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 关注
- 148 浏览
添加回答
举报