Я хочу создать изображение docker, используя базовое изображение (не root), которое будет запускать сервис stati c http assets. Итак, в базовом образе Debian уже есть NodeJS, и я хочу использовать http-сервер пакета NPM для обслуживания ресурсов. Мой Dockerfile выглядит так:
FROM mwi_node10_20190321
USER root
RUN useradd -u 5000 node
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
RUN npm install --global http-server
USER node
COPY --chown=node:node . .
Когда я затем пытаюсь запустить http-сервер, используя:
docker container run -it --user node 46c476f9dac5 http-server
, я получаю следующую ошибку:
docker: Ответ от демона об ошибке: Ошибка создания среды выполнения OCI: container_ linux. go: 345: запуск процесса контейнера вызвал «exe c:« http-server »: исполняемый файл не найден в $ PATH»: unknown.
Однако, если я работаю под пользователем root, он работает без каких-либо проблем с использованием cmd:
docker container run -it --user node 46c476f9dac5 http-server
Так что похоже на проблему с разрешением при запуске его как non -корневой, но не знаю, как это исправить. Есть идеи?