Как держать контейнер работающим после запуске стартового скрипта .sh?

Пробую в контейнере запустить jar
скрипт устанавливает переменные и запускает exec java ... &

И затем контейнер благополучно завершает работу, довольный завершенным исполнением скрипта.
А как правильно его оставить работающим с выполняющейся jar?

Скрипт:
APP_USER=...
APP_NAME=...
APP_PROP=...
APP_BASE=...
APP_HOME=...
APP_LOG=..
APP_REGEX=...
JAVA_OPTS='...

exec java -Duser.dir=$APP_HOME -Duser.home=$APP_HOME -Duser.timezone=Europe/Minsk $JAVA_OPTS -Dspring.config.location=${APP_HOME}/${APP_PROP} -jar $APP_HOME/$APP_NAME.jar >> /dev/null 2>&1 &


  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Надо убрать & из команды. Серьёзно, при запуске приложения в контейнере вообще не нужно никак уводить его выполнение в фоновый режим.

До кучи, при запуске в контейнере не имеет смысла перенаправлять вывод в /dev/null, поскольку чаще всего удобнее, что можно посмотреть вывод приложения командой docker logs.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы