部署到云运行时发生云构建错误



我已经运行了一年的云构建服务,该服务将nextjs应用程序部署到云运行容器中。本周,在进行了一些提交之后,我无法成功部署更改,尽管我没有更改GCP上的任何内容。在云构建中,错误显示:

"Deploy": ERROR: (gcloud.run.services.update) Cloud Run error: The user-provided container failed to start and listen on the port defined provided by the PORT=3000 environment variable. Logs for this revision might contain more information.

在它下载这个图像之后

ERROR: build step 2 "gcr.io/google.com/cloudsdktool/cloud-sdk:slim" failed: step exited with non-zero status: 1

我在cloudbuild.yaml文件上的步骤是:

  1. 下载.env文件

  2. 构建容器镜像

  3. 将容器图像推送到gcr

  4. 将容器映像部署到Cloud Run Anthos

我甚至将超时时间增加到了900秒,因为这是我收到的第一个错误。这些步骤在过去已经成功地部署了应用程序,我只在cloudbuild.yaml 中更改了超时时间

我的dockerfile只有以下内容:

FROM node:14-alpine
WORKDIR /app
COPY . .
RUN npm install
RUN npm rebuild node-sass
RUN npm run build
EXPOSE 3000
CMD ["npm","start"]

这是GCP抛出的一个非常常见的错误。前几天我也遇到过同样的情况,这与港口本身无关。

在我的情况下,我碰巧忘记了在更改Dockerfile中的权限之前创建一个目录。

试着在";日志";在那里你通常可以找到关于病因的更好的信息。GCP日志

尝试在端口8080而不是3000 上运行此程序

问题很可能是您不允许Dockerfile在任何地方使用$PORT环境变量-自定义CMD指令以包含$PORT,这样您的容器就可以从Cloud Run环境中接受它,并在该端口上启动应用程序。这个想法是Cloud Run传递这个环境变量,并且您的容器必须接受它——否则容器将无法在Cloud Run上启动(文档中这样说(。

相关内容

  • 没有找到相关文章

最新更新