Контейнер Docker работает медленно при запуске приложения Spring Boot - PullRequest
3 голосов
/ 04 апреля 2019

У меня есть загрузочное приложение Spring, которое я добавил в Docker-контейнер openjdk.Это приложение хорошо работает на моей архитектуре amd64.Но когда я собираю и запускаю контейнер на Raspberry Pi arm32v7, время загрузки составляет 5-6 минут.

FROM openjdk:11-jdk-slim-stretch
VOLUME /tmp

ADD ./target/app-1.0.0-SNAPSHOT.jar /app.jar
EXPOSE 5001 5002

ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

Запуск этого контейнера следующей командой:

docker run -p 5000:5000 --memory=200mb --cpuset-cpus="0-3" my_app

Я вижу 100-200% загрузки процессора, и относительно нет использования памяти.Примерно через 3 минуты приложение Spring Boot начинает работать, и для его полного запуска требуется около 5 минут.

То, что я пробовал;

  1. Запустил Jar вне контейнера док-станции, он сразу запустился.
  2. Сравнил использование памяти контейнера amd64 с контейнером arm32v7.Оба кажутся сопоставимыми.amd64 показывает около 200 МБ памяти.
  3. Увеличил объем памяти и установил количество доступных процессоров

Почему мой контейнер Docker версии 18.09.0 работает медленно на RaspberryPi 3 B +?

ОБНОВЛЕНИЕ

Я изменил openjdk:11-jdk-slim-stretch на другие изображения (resin/rpi-raspbian, 8u201-jre-alpine3.9).Все имеют одинаковый результат, очень, очень медленно.

...