Передача переменных окружения в dockerfile - PullRequest
0 голосов
/ 28 ноября 2018

Мне нужно передать переменную окружения в моем Dockerfile, как показано ниже.Могу ли я узнать эффективный способ сделать это.Я попытался использовать аргументы сборки

docker build --build-arg myIP=123 --rm -t react_2811_1154 .

, но это не сработало.

Вот мой Dockerfile

ARG myIP

FROM node:11

ENV myIP1 $myIP


ENV REACT_APP_MOCK_API_URL=http://${myIP1}:8080/API
ENV REACT_APP_MOCK_API_URL_AUTH=http://${myIP1}:8080/API/AUTH
ENV REACT_APP_MOCK_API_URL_PRESENTATION=http://${myIP1}:8080/API/PRESENTATION

# set working directory
RUN mkdir /usr/src/app/
WORKDIR /usr/src/app/

COPY . /usr/src/app/.

RUN npm install 

#RUN npm start
CMD ["npm", "start" ]

Поэтому, когда я запускаю свой докер-контейнер, я считаю, что я не хочу отправлять в него какие-либо переменные среды.

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 28 ноября 2018

Я запустил ваш Dockerfile, и myIP действительно пуст, когда я запускаю env внутри контейнера.

Чтобы исправить это, попробуйте ввести строку ARG ПОСЛЕ строки FROM.

Итак,

FROM node:11

ARG myIP

ENV myIP1 $myIP

ENV REACT_APP_MOCK_API_URL=http://${myIP1}:8080/API
ENV REACT_APP_MOCK_API_URL_AUTH=http://${myIP1}:8080/API/AUTH
ENV REACT_APP_MOCK_API_URL_PRESENTATION=http://${myIP1}:8080/API/PRESENTATION

Сборка с использованием этого Dockerfile, я смог установить myIP.

...