在dockerfile中传递环境变量

时间:2018-11-28 01:18:52

标签: reactjs docker dockerfile devops

我需要在Dockerfile中传递环境变量,如下所示。我可以知道执行此操作的有效方法吗?我尝试使用build args

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" ]

因此,当我运行docker容器时,我相信我不想向其发送任何环境变量。

请告知。

1 个答案:

答案 0 :(得分:1)

我运行了您的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