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
Node.js 停靠的React应用程序无法绑定到Heroku上的$PORT_Node.js_Reactjs_Docker_Heroku_Web Deployment - Fatal编程技术网

Node.js 停靠的React应用程序无法绑定到Heroku上的$PORT

Node.js 停靠的React应用程序无法绑定到Heroku上的$PORT,node.js,reactjs,docker,heroku,web-deployment,Node.js,Reactjs,Docker,Heroku,Web Deployment,我正在尝试将一个停靠的React应用程序部署到Heroku,但继续获取 “R10:无法绑定到Heroku上的$PORT错误” 当我在本地运行docker时,docker应用程序运行得非常好 我的docker文件如下所示: FROM node:10.15.3 RUN mkdir -p /app WORKDIR /app COPY . . ENV PATH /app/node_modules/.bin:$PATH COPY package.json /app/package.json RUN n

我正在尝试将一个停靠的React应用程序部署到Heroku,但继续获取

“R10:无法绑定到Heroku上的$PORT错误”

当我在本地运行docker时,docker应用程序运行得非常好

我的docker文件如下所示:

FROM node:10.15.3
RUN mkdir -p /app
WORKDIR /app
COPY . .

ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install --verbose
RUN npm install serve -g -silent

# start app
RUN npm run build
CMD ["serve", "-l", "tcp://0.0.0.0:${PORT}", "-s", "/app/build"]
我按照在线解决方案将serve上的“侦听”端口从Heroku更改为$port。现在,根据日志,应用程序在Heroku的端口上提供服务,但仍然需要

“绑定到$PORT失败错误”


请帮忙

>变量替换在CMD中没有发生,这就是为什么代码> ${t} /COD>被认为是文本而不是消耗它的值。

与shell表单不同,exec表单不调用命令shell。这意味着正常的shell处理不会发生。例如,
CMD[“echo”,“$HOME”]
不会对
$HOME
执行变量替换。如果需要shell处理,则可以使用shell表单或直接执行shell,例如:
CMD[“sh”、“-c”、“echo$HOME”]
。当使用exec表单并直接执行shell时,就像shell表单一样,执行环境变量扩展的是shell,而不是docker

将CMD更改为

CMD ["sh", "-c", "serve -l tcp://0.0.0.0:${PORT} -s /app/build"]