如何使 golang 的 golang 版本和我的 Dockerfile 保持同步?

How can I keep golang's golang version and my Dockerfile in sync?

我是 goland 的新手,试图在我的第一个项目中使用它。我注意到在 goland 中它没有显示通过容器拉入的相同 golang SDK。

这是我的 Dockerfile:

FROM golang:1.12-alpine
RUN mkdir /app
WORKDIR /app
ADD src/ /app

ENV CGO_ENABLED=0
ENV GO111MODULE=off

# Fetch application dependencies
RUN apk add --no-cache --update git \
    && go get github.com/bwmarrin/discordgo \
    && go get github.com/jonas747/dshardmanager \
    && go get github.com/bugsnag/bugsnag-go \
    && apk del git

# Build binary
RUN go build -o main .

CMD ["/app/main"]

但是在goland中你可以看到它没有显示正确的版本。 有什么方法可以设置它,以便 goland 始终看到容器中使用的版本?

Goland 使用您的 Systems Go SDK,而不是 Dockerfile 中的那个。

如果你去Goland > Preferences > Go > Go Root,你会发现Goland正在使用的版本,这将对应于你的版本External Libraries Section

在这种情况下,您可能需要更新系统安装的 go 版本以匹配 dockerfile 中的版本。

同样值得注意的是,在开发时,Goland 将允许您选择使用哪个版本的 Go 来构建您的项目。在上面提到的相同设置中,您会在 Go 子菜单下看到一个标题 For Current Project。如果你安装了多个 Go 版本,你可以 select sdk 并让 Goland 处理构建。