【发布时间】:2020-08-04 21:37:09
【问题描述】:
TL:DR - 我正在尝试将我的 MERN 堆栈应用程序部署到 GCP 的 Cloud Run。我认为这是一个端口问题。
我的 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 Run 上,该应用程序无法运行。当我访问部署到 Cloud Run 的应用时,前端最初会加载一瞬间,但随后应用在尝试向 API 发出请求时崩溃。
在高级设置中,有一个默认为 8080 的容器端口。我尝试将其更改为 3000,但都不起作用。我无法输入 8080,3000,因为该字段仅对端口采用有效整数。是否可以像这样同时将 React + Node 部署到 Cloud Run?如何让 Cloud Run 在 8080 和 3000 上同时收听,而不是 2 个中的一个?
谢谢!
【问题讨论】:
标签: docker google-cloud-platform containers google-cloud-run