Ben
Ben

Reputation: 62444

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

I'm new to goland, trying to pick it up on my first project. I'm noticing in goland that it doesn't show the same golang SDK that is pulled in through the container.

Here's my 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"]

But in goland you can see that it doesn't show the correct version. Is there a way I can set this up so that goland always sees the version used in the container?

enter image description here

Upvotes: 0

Views: 2504

Answers (1)

gngchrs
gngchrs

Reputation: 478

Goland uses your Systems Go SDK, and not the one in the Dockerfile.

If you go to Goland > Preferences > Go > Go Root, you will find the version that Goland is using, which will correspond to the version in you External Libraries Section.

In this case, you may need to update your system installed go version to match the one in the dockerfile.

It is also worth noting that while developing, Goland will allow you to choose which version of Go to build your project with. In the same settings mentioned above, you will see a title For Current Project, under the Go submenus. If you have multiple versions fo Go installed, you can select the sdk and let Goland handle the build.

Upvotes: 3

Related Questions