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

#go #goland

#Вперед #goland

Вопрос:

Я новичок в goland, пытаюсь использовать его в своем первом проекте. Я замечаю в goland, что он не показывает тот же SDK golang, который загружается через контейнер.

Вот мой файл 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 
    amp;amp; go get github.com/bwmarrin/discordgo 
    amp;amp; go get github.com/jonas747/dshardmanager 
    amp;amp; go get github.com/bugsnag/bugsnag-go 
    amp;amp; apk del git

# Build binary
RUN go build -o main .

CMD ["/app/main"]
  

Но в goland вы можете видеть, что он не показывает правильную версию. Есть ли способ настроить это так, чтобы goland всегда видел версию, используемую в контейнере?

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

Ответ №1:

Goland использует ваш системный SDK Go, а не тот, который находится в Dockerfile.

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

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

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

Комментарии:

1. Поскольку я использую Docker для этого проекта, мне на самом деле не нужно, чтобы go устанавливался локально. Итак, я заметил, что у goland есть возможность при нажатии загрузить SDK для данной версии. Установка go с веб-сайта go не привела к автоматическому заполнению этого выпадающего списка правильной версией SDK для меня.

2. Вам необходимо установить Go на локальном компьютере, чтобы разрабатывать приложения на Go при использовании GoLand. Кроме того, если вы установите Go в свою систему, GoLand не будет автоматически определять, где вы его установили, и вам нужно указать выбор SDK самостоятельно.