Node.js 如何在docker运行中设置环境变量

Node.js 如何在docker运行中设置环境变量,node.js,docker,Node.js,Docker,我正在尝试在docker run命令中设置环境变量 这是我的Dockerfile: FROM node:8.16.0-alpine WORKDIR /Users/Marc/Dev/GreenPool/docker-test COPY test.js ./ COPY . . RUN ln -s /usr/bin/nodejs /usr/bin/node ENTRYPOINT ["node", "./test.js", "data"] $ docker run -it --entrypo

我正在尝试在docker run命令中设置环境变量

这是我的Dockerfile:

FROM node:8.16.0-alpine

WORKDIR /Users/Marc/Dev/GreenPool/docker-test

COPY test.js ./

COPY . .

RUN ln -s /usr/bin/nodejs /usr/bin/node

ENTRYPOINT ["node", "./test.js", "data"]
$ docker run -it --entrypoint=printenv ubuntu:16.04 -e foo=bar
printenv: invalid option -- 'e'
这是我的命令:

docker run marcvander/node-test:latest -e "data=2"
控制台输出:

Undefined
NaN
NaN
3
3
6
如果我在Dockerfile中设置了环境变量,它将起作用:

ENV data=3
控制台输出:

Undefined
NaN
NaN
3
3
6
我的test.js文件:

#!/usr/bin/env node

var data = process.env.data;
console.log(data);
data = Number(data);

function addTwoNumbers(data) {
  console.log(data);
  console.log(data + data);
  return data + data;
}

addTwoNumbers(data);

-e
标志必须位于图像名称之前

要模拟您的
ENTRYPOINT
ed Dockerfile:

FROM node:8.16.0-alpine

WORKDIR /Users/Marc/Dev/GreenPool/docker-test

COPY test.js ./

COPY . .

RUN ln -s /usr/bin/nodejs /usr/bin/node

ENTRYPOINT ["node", "./test.js", "data"]
$ docker run -it --entrypoint=printenv ubuntu:16.04 -e foo=bar
printenv: invalid option -- 'e'
c、 f


-e
标志必须位于图像名称之前

要模拟您的
ENTRYPOINT
ed Dockerfile:

FROM node:8.16.0-alpine

WORKDIR /Users/Marc/Dev/GreenPool/docker-test

COPY test.js ./

COPY . .

RUN ln -s /usr/bin/nodejs /usr/bin/node

ENTRYPOINT ["node", "./test.js", "data"]
$ docker run -it --entrypoint=printenv ubuntu:16.04 -e foo=bar
printenv: invalid option -- 'e'
c、 f


您是否尝试过docker run-e“data=2”marcvander/node测试:最新版本!谢谢你尝试了docker run-e“data=2”marcvander/node测试:最新的?@jornsharpe它工作了!谢谢