Как установить переменные окружения в Docker Run - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь установить переменные окружения в моей команде запуска Docker.

Вот мой 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);

1 Ответ

2 голосов
/ 26 апреля 2019

Флаг -e должен стоять перед именем изображения.

Для эмуляции вашего ENTRYPOINT ed Dockerfile:

$ docker run -it --entrypoint=printenv ubuntu:16.04 -e foo=bar
printenv: invalid option -- 'e'

cf

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...