Проблемы и решения

Github Actions

> Не появляется workflow на GitHub
Проверьте, что название ветки в вашем репозитории совпадает с веткой в файле commit-checks.yml: master/main

Запуск программ / скриптов

> Ошибка при запуске программ/скриптов:
is not recognized as an internal or external command.. или command not found
Из соображений безопасности в Linux в PATH по умолчанию не включен в путь в текущий каталог, для запуска его надо указывать: ./
Нарпимер, в Windows запуск будет gradlew, в Unix - ./gradlew
> Ошибка при запуске bash скриптов (или похожая):
-bash: ./submit_requests.sh: /bin/bash^M: bad interpreter: No such file or directory
Операционная система не понимает переноса строк, нужно поменять на формат своей ОС (в IDEA справа внизу выбрать из CRLF/LF/CR)

Docker

> ./gradlew bootBuildImage выдает ошибку: Illegal char <:> at index 5: npipe:////./pipe/dockerDesktopLinuxEngine
Если у вас версия Docker 4.31+, возможна ошибка FAILURE: Build failed with an exception
Execution failed for task ':bootBuildImage'.
> Illegal char <:> at index 5: npipe:////./pipe/dockerDesktopLinuxEngine
Решение: поднять версию Spring Boot 3.2.8+ или добавить в настройки bootBuildImage в build.gradle
bootBuildImage {
  imageName = "${project.name}"
  environment = ["BP_JVM_VERSION": "17.*"]
  docker {
    host = "//./pipe/dockerDesktopLinuxEngine"
  }
}
host актуален для Windows. Для MacOs надо запустить docker context inspect и взять host оттуда.
Это url, по которому можно взаимодействовать с Docker daemon

> Ошибка в логе контейнера Docker Desktop (Windows):
Terminating due to java.lang.OutOfMemoryError: Java heap space
Варианты решения разные. У меня решилось созданием файла c:\Users\[username]\.wslconfig:
запуск Docker Desktop без GUI, память и количество процессоров можно посмотреть в диспетчере задач (Ctrl + Shift + Esc), вкладка «Performance/Производительность»
[wsl2]
memory=8GB
swap=2000
processors=4
guiApplications=false

> В образе Docker отсутствует время создания
Добавьте в gradle плагин:
bootBuildImage {
    imageName = "${project.name}"
    createdDate = "now"
    ...
}

> pull access denied for menu-service, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
Образ menu-service не найден локально, следует попытка найти его в удаленном реестре Docker, где этого образа тоже, конечно же, нет.
Посмотрите, какие образы есть локально: docker image ls. Если в выводе нет нужного образа, его надо собрать. Если есть, обратите внимание на версию. Если версия не latest, проверьте, что в build.gradle есть такая таска:
bootBuildImage {
    imageName = "${project.name}"
    environment = ["BP_JVM_VERSION": "17.*"]
}
В ней должно быть настроено имя imageName. Если нет, добавьте, без этого создается образ с именем по умолчанию.

> Execution failed for task ':bootBuildImage'.
> Invalid buildpack reference 'docker.io/paketobuildpacks/health-checker:1'

Docker не может выкачать buildpack
  • Проверить, что такой пакет есть в репозитории и выкачивается: docker pull paketobuildpacks/health-checker
  • Попробовать удалить все старые images (docker image ls) или запуститься с опцией --cleanCache
  • Поднять версии 'org.springframework.boot'. В config-server у меня образ собрался только после обновления версий.

> bootBuildImage работает очень-очень долго
Если в настройках Docker Desktop установлена опция "Enable Resource Saver", он может не "просыпаться". service discovery
Можно эту опцию не отключать, а если есть подозрения, что сервис "не проснулся", "будить" вручную - в левом нижнем углу окна есть кнопки "Resume", "Pause"...

> Ошибки на маках с чипами Silicon
Попробуйте поменять настройки Docker таким образом: service discovery

Kafka

> docker-deployment/read_topics.sh выдает ошибку:
ERROR Error processing message, terminating consumer process:  (kafka.tools.ConsoleConsumer$:45)
org.apache.kafka.common.errors.TimeoutException
...
Processed a total of 2 messages
В скриптах создается 5 заказов и 5 пытается вычитать из Кафки. Если сообщений в топике меньше, то он выдаст такую ошибку.