reactjs - 在 dockerfile 中传递环境变量

标签 reactjs docker dockerfile devops

我需要像下面这样在我的 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/

相关文章:

reactjs - 如何使用键盘 Tab 键聚焦于 Material UI Link(不使用组件 ="button")

javascript - 在 React 中完成多个任务后提交表单

docker - 什么是docker中间层或镜像?

docker - 权限在Dockerfile中被拒绝

docker - Dockerfile:如何获取Anaconda

bash - 如何在容器运行时使用 dockerfile 运行 .sh 文件

reactjs - React 中的预增量运算符?

css - 如何在 flex 容器中指定高度?

docker - docker域/端口映射到localhost

docker - 在容器名称上使用 glob/通配符运行 docker 命令