Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在dockerfile中传递环境变量_Reactjs_Docker_Dockerfile_Devops - Fatal编程技术网

Reactjs 在dockerfile中传递环境变量

Reactjs 在dockerfile中传递环境变量,reactjs,docker,dockerfile,devops,Reactjs,Docker,Dockerfile,Devops,我需要在Dockerfile中传递环境变量,如下所示。我可以知道做这件事的有效方法吗。我尝试使用构建参数 docker build --build-arg myIP=123 --rm -t react_2811_1154 . 但它不起作用 这是我的文件 ARG myIP FROM node:11 ENV myIP1 $myIP ENV REACT_APP_MOCK_API_URL=http://${myIP1}:8080/API ENV REACT_APP_MOCK_API_URL_A

我需要在Dockerfile中传递环境变量,如下所示。我可以知道做这件事的有效方法吗。我尝试使用构建参数

docker build --build-arg myIP=123 --rm -t react_2811_1154 .
但它不起作用

这是我的文件

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
行之后

所以


使用此Dockerfile构建时,我可以设置
myIP

我运行了您的Dockerfile,当我在容器内部运行
env
时,
myIP
确实是空的

要解决此问题,请尝试将
ARG
行放在
FROM
行之后

所以


使用此Dockerfile构建,我可以设置
myIP

我不清楚您的问题。是否要尝试将环境传递给docker容器,但不知道如何在容器中使用此值?Dockerfile没有问题为了澄清Truong所说的:是环境变量没有在容器中设置,还是npm无法提取变量?请您通过运行echo$memory进行检查,IP地址和主机名可以更改,即使在同一组织中的dev/test/prod环境之间也是如此。这不是您希望“烘焙”到Docker映像并在运行时将其作为环境变量传递的详细信息。请检查此问题,请参阅ARG上的范围:我不清楚您的问题。是否要尝试将环境传递给docker容器,但不知道如何在容器中使用此值?Dockerfile没有问题为了澄清Truong所说的:是环境变量没有在容器中设置,还是npm无法提取变量?请您通过运行echo$memory进行检查,IP地址和主机名可以更改,即使在同一组织中的dev/test/prod环境之间也是如此。这不是您希望“烘焙”到Docker映像并在运行时将其作为环境变量传递的详细信息。请检查此问题,请参阅ARG上的范围:ARG具有范围。在FROM行之前,参数仅适用于FROM行。在Dockerfile的其他部分中,ARG应用于从定义位置到阶段末尾(或单个阶段文件中的Dockerfile)。非常感谢大家。你们真是帮了大忙。ARG有范围。在FROM行之前,参数仅适用于FROM行。在Dockerfile的其他部分中,ARG应用于从定义位置到阶段末尾(或单个阶段文件中的Dockerfile)。非常感谢大家。你们真是帮了大忙。
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