我正在尝试在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 marcvander/node-test:latest -e "data=2"
控制台输出:
Undefined
NaN
NaN
如果我在Dockerfile中设置了环境变量,它将起作用:
ENV data=3
控制台输出:
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);
答案 0 :(得分:2)
-e
标志必须在图像名称之前。
要模拟您的ENTRYPOINT
版本的Dockerfile:
$ docker run -it --entrypoint=printenv ubuntu:16.04 -e foo=bar
printenv: invalid option -- 'e'
c.f。
$ docker run -it --entrypoint=printenv -e foo=bar ubuntu:16.04
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=0d4ef96a831d
TERM=xterm
foo=bar
HOME=/root