节点应用程序错误-无法在配置中进行ro替换env:$ {NPM_TOKEN}

时间:2018-12-17 22:05:38

标签: node.js docker npm

我正在尝试为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 threadthis SO question。我觉得我已阅读的所有内容都将我指向了相同的解决方案,该解决方案已经实现,但没有成功。

2 个答案:

答案 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