Как я могу синхронизировать версию golang golang и мой файл Dockerfile?

Я новичок в 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 всегда видел версию, используемую в контейнере?

введите здесь описание изображения


person Webnet    schedule 21.04.2019    source источник


Ответы (1)


Goland использует ваш Systems Go SDK, а не тот, что в Dockerfile.

Если вы перейдете в Goland > Preferences > Go > Go Root, вы найдете версию, которую использует Goland, которая будет соответствовать вашей версии External Libraries Section.

В этом случае вам может потребоваться обновить установленную в вашей системе версию go, чтобы она соответствовала версии в файле dockerfile.

Также стоит отметить, что при разработке Goland позволит вам выбрать, на какой версии Go строить свой проект. В тех же настройках, упомянутых выше, вы увидите заголовок For Current Project в подменю «Перейти». Если у вас установлено несколько версий Go, вы можете выбрать SDK и позволить Goland заняться сборкой.

person gngchrs    schedule 21.04.2019
comment
Поскольку я использую Docker для этого проекта, мне не нужно устанавливать его локально. Итак, я заметил, что у goland есть возможность, нажав +, чтобы загрузить SDK для данной версии. Установка go с веб-сайта go не автоматически заполнила этот раскрывающийся список правильной версией SDK. - person Webnet; 21.04.2019
comment
Вам необходимо установить Go на локальный компьютер, чтобы разрабатывать приложения Go при использовании GoLand. Кроме того, если вы устанавливаете Go в своей системе, GoLand не будет автоматически определять, где вы его установили, и вам нужно будет указать выбор SDK самостоятельно. - person dlsniper; 22.04.2019