Dockerfile: передать аргумент в RUN npm run build - PullRequest
0 голосов
/ 19 октября 2019

У меня есть dockerfile со следующими строками:

ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT

RUN npm run ng build --configuration=${ENVIRONMENT}

Я не могу получить "RUN npm run ng build --configuration = для передачи значения $ ENVIRONMENT в команду npm.

Какой синтаксис для этого?

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

По документации Dockerfile ARG ,

Инструкция ARG определяет переменную, которую пользователи могут передавать во время сборки сборщику с помощью команды сборки docker, используя -build-arg = флаг.

, чтобы принять аргумент в качестве части сборки, мы используем --build-arg.

Документация Dockerfile ENV :

Инструкция ENV устанавливает значение переменной среды.

Нам также необходимо включить оператор ENV, так как CMD будет выполнен после завершения сборки, а ARG будет недоступен.

FROM busybox

ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT
CMD echo $ENVIRONMENT

приведет к тому, что переменная окружения будет установлена ​​в образе, чтобы она была доступна во время команды docker run.

docker build -t test --build-arg ENVIRONMENT=awesome_environment .
docker run -it test

Это будет echo awesome_environment.

0 голосов
/ 19 октября 2019

Попробуйте изменить команду RUN, сделайте следующее:

RUN npm run ng build --configuration=$ENVIRONMENT

Это должно работать. Отметьте здесь

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...