【发布时间】:2020-04-02 13:55:58
【问题描述】:
我想构建一个包含已安装节点包的 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.
看起来这个参数需要以某种方式转义。任何线索如何解决这个问题?
【问题讨论】:
标签: docker npm npm-install docker-for-windows