You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Universal部署Google Cloud Run遇端口错误及文件缺失问题

解决方案

1. 修正Dockerfile,补充项目构建流程

你的Dockerfile仅完成了文件复制,未执行Angular Universal的构建命令,导致Cloud Run构建镜像时无法生成dist目录,最终找不到指定的启动文件。修改后的Dockerfile需包含依赖安装、项目构建步骤:

FROM node:18-slim

# 设置工作目录
WORKDIR /app

# 复制package文件(优先复制可利用Docker缓存加速构建)
COPY package*.json ./

# 安装项目依赖
RUN npm install

# 复制全部项目源码
COPY . .

# 构建Angular Universal项目,生成dist目录
RUN npm run build:ssr

# 启动服务
CMD ["node", "dist/website3/server/main.js"]

2. 调整.dockerignore配置

当前配置排除了package*和src,导致构建镜像时无法复制依赖配置文件和项目源码,无法完成依赖安装与项目构建。需删除这两项规则:

node_modules
server.ts
npm-debug.log
Dockerfile*
tsconfig.*
docker-compose*
.angular
karma.conf.js
.dockerignore
.git
.gitignore
README.md
LICENSE
.vscode

3. 确认package.json中的构建命令

确保package.json里存在正确的build:ssr命令,示例格式如下:

"scripts": {
  "build:ssr": "ng build && ng run website3:server"
}

4. 适配Cloud Run端口要求

监听端口错误是因为Angular Universal默认使用4000端口,而Cloud Run要求服务监听环境变量PORT指定的端口。需在server.ts中修改端口监听逻辑:

const port = process.env.PORT || 4000;

内容的提问来源于stack exchange,提问作者fr4nkdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:33:25