Как отлаживать докеризованное приложение Golang с помощью Goland IDE и Docker compose

Я кодирую докеризованное приложение Golang с помощью IDE Goland и Docker Compose, потому что мой код зависит от нескольких сервисов.

Я нашел в Интернете такие посты, в котором описывается, как отлаживать Dockerized приложение Golang, но я не знаю, как это сделать, когда я запускаю свои контейнеры с помощью docker-compose.

Любая идея, как это сделать?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
463
1

Ответы 1

Такие способы, как настройка файла Докерфайл, как в сообщении, на которое вы ссылаетесь, у меня не работают. Очень сложно заставить Копаться хорошо работать и заставить GoLand его слушать.

Проще всего настроить отлаживать на Докер из GoLand:

  • Выберите Выполнить > Управление целями
  • Добавьте новую цель, нажав кнопку +
  • Выберите Докер
  • Назовите его, как хотите
  • Выберите свой Докер-сервер
  • Выберите Изображение: тянуть
  • Введите имя Тег изображения: для запуска (я буду использовать последнюю версию Голанг: 1.16.6)
  • Отредактируйте Варианты запуска:, добавьте что-то вроде раскрытия порта или что-нибудь еще, что вы предоставляете для команды docker run: "--rm-p 8080:8080"
  • Другие поля будут заполнены автоматически, если у вас уже есть загруженное изображение.

Теперь добавьте конфигурацию для запуска в этом контейнере:

  • Выберите Выполнить > Изменить конфигурации
  • Добавить конфигурацию Перейти строить
  • Выберите недавно созданную цель Запускать на:.
  • Выберите Построить на удаленной цели, если вы хотите создать приложение в контейнере.

Сделанный. Вы можете запускать и отлаживать с этой конфигурацией.

Пример: Example target settings

Example configuration settings

Чтобы создать dockerfile для развертывания в аналогичной среде, вы можете использовать этот пресет:

FROM golang:1.16.6 AS build
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o yourApp

FROM gcr.io/distroless/base
WORKDIR /
COPY --from=build /app/yourApp /
EXPOSE 8080
CMD [ "/yourApp " ]

Это связано с созданием докеров? Насколько я понимаю, это конфигурация сборки GoLand, которая не включает конфигурацию компоновки докеров, поэтому работающая сборка не имеет подключения к другим контейнерам докеров, например. база данных. Это правильно?

fabs 26.11.2021 16:52

@fabs При создании конфигурации просто выберите Docker-компоновать вместо Сборка докера и укажите путь к файлу компоновки.

Leonid Pavlov 30.11.2021 07:02

Другие вопросы по теме