我正在尝试为Sails.js应用程序构建Docker映像。这是Dockerfile:
Task.Run
我从NPM文档站点上的this link开始执行此Dockerfile的步骤。我已经确保与那里的文档完全匹配。
我的docker build命令是:
FROM risingstack/alpine:3.4-v8.5.0-4.7.0
ENV NODE_ENV test
RUN npm install -g sails
COPY npmrc_file .npmrc
ARG NPM_TOKEN
COPY package.json package.json
RUN npm install
RUN rm -f .npmrc
# Add your source files
COPY . .
EXPOSE 3000
CMD ["npm","start"]
然后,我使用image="my-repo-url/tagname:tagversion"
docker build --build-arg NPM_TOKEN=my-token-goes-here -t $image -f Dockerfile .
或docker stack
使用图像运行容器。由于出现以下错误,容器无法启动:
docker-compose
问题是,当我们开始运行容器时,应该没有对$ {NPM_TOKEN}的引用或需要。我在另一个项目中使用的是完全相同的设置,但是没有看到此错误,因此我不太确定这是什么。我三重检查了该项目中的所有其他项目是否都相同。
此错误的可能原因以及一些可能的解决方法?
我还阅读了this thread和this SO question。我觉得我已阅读的所有内容都将我指向了相同的解决方案,该解决方案已经实现,但没有成功。
答案 0 :(得分:0)
这最终对我有用:
ARG NPM_TOKEN
ENV NPM_TOKEN="${NPM_TOKEN}"
为什么这可以解决此问题,我不确定!
答案 1 :(得分:0)
这就是我正在使用的
在Dockerfile
ARG NPM_AUTH_TOKEN=$NPM_AUTH_TOKEN
ENV NPM_AUTH_TOKEN=$NPM_AUTH_TOKEN
和docker-compose.yml
version: '2'
services:
app:
build:
args:
- NPM_AUTH_TOKEN