Я хочу создать Docker образ, который содержит установленный пакет узла. Если версия пакета отсутствует или жестко задана в Dockerfile
, все в порядке (@14.0.0
):
FROM stefanscherer/node-windows:12.16.1-nanoserver-1909
RUN npm install -g @sitecore-jss/sitecore-jss-cli@14.0.0
Команда построения и результат:
docker build -t sitecore-jss-cli:14.0.0-nanoserver-1909 .
Successfully built 1c0ebbcd5be2
Successfully tagged sitecore-jss-cli:14.0.0-nanoserver-1909
Но когда версия передается в качестве аргумента (для возможности построения любой версии), возникает ошибка. Пожалуйста, взгляните на обновленную Dockerfile
:
ARG SITECOREJSS_VERSION
FROM stefanscherer/node-windows:12.16.1-nanoserver-1909
RUN npm install -g @sitecore-jss/sitecore-jss-cli@${SITECOREJSS_VERSION}
Команда с аргументом и ошибкой:
docker build --build-arg SITECOREJSS_VERSION=14.0.0 -t sitecore-jss-cli:14.0.0-nanoserver-1909 .
...
npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name "${SITECOREJSS_VERSION}": Tags may not have any characters that encodeURIComponent encodes.
Похоже на необходимость аргумента чтобы избежать каким-либо образом. Любая подсказка, как это исправить?