为云 运行 部署公开端口 8080 和 3000
Expose Both Ports 8080 and 3000 For Cloud Run Deployment
TL:DR - 我正在尝试将我的 MERN 堆栈应用程序部署到 GCP 的云 运行。正在努力解决我认为是端口问题的问题。
我的 React 应用程序位于我的 Node.js 应用程序的 client
文件夹 中。
这是我的 Dockerfile
到 运行 前端和后端:
FROM node:13.12.0-alpine
WORKDIR /app
COPY . ./
# Installing components for be connector
RUN npm install --silent
WORKDIR /app/client
RUN npm install --silent
WORKDIR /app
RUN chmod +x /app/entrypoint.sh
ENTRYPOINT [ "/app/entrypoint.sh" ]
...这是我的 entrypoint.sh
文件:
#!/bin/sh
node /app/index.js &
cd /app/client
npm start
docker-compose up
在本地工作,docker run -p 8080:8080 -p 3000:3000 <image_id>
运行 是我构建的图像。端口 8080 用于 Node,端口 3000 用于 React 应用程序。但是,在 Cloud 运行 上,该应用程序无法运行。当我访问部署到云 运行 的应用程序时,前端最初会加载一瞬间,但随后应用程序在尝试向 API.
发出请求时崩溃
在高级设置中,有一个默认为8080的容器端口。我试过将其更改为3000,但都不起作用。我无法输入 8080,3000,因为该字段只对端口采用有效整数。是否可以像这样将 React + Node 同时部署到 Cloud 运行?我怎样才能让 Cloud 运行 同时监听 8080 和 3000,而不是只监听 2 个中的一个?
谢谢!
目前不可能。
相反,您可以 run multiple processes inside Cloud Run, but instead use nginx to proxy requests between them depending on the URL, similar to what's recommended in 。
TL:DR - 我正在尝试将我的 MERN 堆栈应用程序部署到 GCP 的云 运行。正在努力解决我认为是端口问题的问题。
我的 React 应用程序位于我的 Node.js 应用程序的 client
文件夹 中。
这是我的 Dockerfile
到 运行 前端和后端:
FROM node:13.12.0-alpine
WORKDIR /app
COPY . ./
# Installing components for be connector
RUN npm install --silent
WORKDIR /app/client
RUN npm install --silent
WORKDIR /app
RUN chmod +x /app/entrypoint.sh
ENTRYPOINT [ "/app/entrypoint.sh" ]
...这是我的 entrypoint.sh
文件:
#!/bin/sh
node /app/index.js &
cd /app/client
npm start
docker-compose up
在本地工作,docker run -p 8080:8080 -p 3000:3000 <image_id>
运行 是我构建的图像。端口 8080 用于 Node,端口 3000 用于 React 应用程序。但是,在 Cloud 运行 上,该应用程序无法运行。当我访问部署到云 运行 的应用程序时,前端最初会加载一瞬间,但随后应用程序在尝试向 API.
谢谢!
目前不可能。
相反,您可以 run multiple processes inside Cloud Run, but instead use nginx to proxy requests between them depending on the URL, similar to what's recommended in