我需要像下面这样在我的 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" ]
所以当我运行我的 docker 容器时,我相信我不想向它发送任何环境变量。
请指教。
最佳答案
我运行了您的 Dockerfile,当我在容器内运行 env
时,myIP
确实是空的。
要修复它,请尝试将 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
。
关于reactjs - 在 dockerfile 中传递环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510678/