Я разрабатываю образ докера на основе nvidia / cuda: 10.1-base-ubuntu18.04. Во время сборки установлен пользовательский веб-сервер, и у меня есть docker-entrypoint.sh, который запускает сервер в зависимости от того, установлен ли env var во время выполнения.
Это все работает нормально, если я запускаю контейнер в интерактивном режиме. режим:
docker run -it -p 5000:5000 -e RUN_SERVER=1 myImage/17.5.360/all /bin/bash
Или используйте старый "хак", чтобы сохранить изображение:
docker run -d -p 5000:5000 -e RUN_SERVER=1 myImage/17.5.360/all /bin/bash -c "tail -f /dev/null"
Но когда я следую за самым последним ответом из здесь :
docker run -t -d -p 5000:5000 -e RUN_SERVER=1 myImage/17.5.360/all
Изображение загружается успешно и сохраняется, но сервер не активен.
Вот сокращенная версия docker-entrypoint.sh:
#! /bin/bash
if [ $RUN_SERVER = "1" ]; then
runMyServer
fi
exec "$@"
И Dockerfile:
FROM nvidia/cuda:10.1-base-ubuntu18.04 AS HInstaller
ENV RUN_SERVER=0 # Defaults to not run the server
# ...
COPY "./docker-entrypoint.sh" /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
Как мне отладить, что происходит, поскольку работает интерактивный режим?