CloudJava: Docker. микросервисы. Kafka.
Реактивный стек. Spring Cloud

Программа

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

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 пытается вычитать из Кафки. Если сообщений в топике меньше, то он выдаст такую ошибку.
Контакты: Григорий Кислин
E-mail: admin@javaops.ru
ОГРНИП: 317784700063201 | ИНН: 782581076920

Cайт-партнер: topjava.ru
Поделиться:
Москва Санкт-Петербург Киев Минск Харьков Новосибирск Львов Нижний Новгород Алматы Одесса Днепр Краснодар Екатеринбург Самара Ростов-на-Дону Днепропетровск Казань Воронеж Челябинск Пермь Гомель Владивосток Астана Томск Саратов Гродно Уфа Калининград Николаев Запорожье Ярославль Омск Кемерово Белгород Брест Ташкент Херсон Ижевск Чебоксары Караганда Волгоград Балашиха Йошкар-Ола Киров Барнаул Калуга Иркутск Магнитогорск Донецк Монреаль Warszawa Los Angeles Винница Сыктывкар Тюмень Рига Кишинев Бишкек Владимир Красноярск Ульяновск Жуковский Тольятти Тверь Вологда Улан-удэ Сочи Иваново Мариуполь Пенза Краков Сумы Подольск Тула Рязань Хабаровск Helsinki Могилев Haifa Полтава Сургут Новокузнецк Березники San Francisco Иннополис Tel Aviv Ереван Тернополь Ставрополь Кривой рог Северодвинск Витебск Астрахань

AltStyle によって変換されたページ (->オリジナル) /