Я очень новичок в Docker.И в целях обучения я хочу создать образ докера с установленным Node.js из двоичных файлов, поэтому я создал следующий Dockerfile:
FROM alpine:3.8
RUN mkdir -p /opt \
&& wget -c https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.gz -O - | tar -xvz -C /opt --strip-components 1 \
&& ln -s /opt/bin/node /usr/local/bin/node \
&& ln -s /opt/bin/npm /usr/local/bin/npm \
&& ln -s /opt/bin/npx /usr/local/bin/npx
Образ основан на альпийских двоичных файлах для узла.js загружается и распаковывается в папку «opt», а файлы ссылок на узлы, npm и npx создаются и помещаются в папку / usr / local / bin.Я думал, что этих действий достаточно, чтобы установить node.js.После этого я собрал и запустил контейнер с помощью следующей команды, чтобы убедиться, что узел установлен правильно:
sudo docker run -it --rm <container_name> node -v
Но после запуска контейнера вместо установленной версии node.js я получил следующую ошибку:standard_init_linux.go: 185: пользовательский процесс exec вызвал «нет такого файла или каталога».
Но если я выполняю те же действия в хост-системе, у меня правильно установлен node.js.Итак, что я сделал не так?Как я могу получить node.js из бинарных файлов в образе докера?Спасибо заранее.