如何使用Docker部署带有SSR的Angular 17项目?
最简示例
按以下步骤创建基于Node 18的Angular 17新项目:
npm install -g @angular/cli@17 ng update @angular/core@17 @angular/cli@17 npm update ng new example # 选择SCSS作为样式表 # 启用SSR cd example ng serve
本地可正常访问 localhost:4200。
但尝试用Docker部署时失败,原因是网上现有的Docker示例均针对无SSR的旧版Angular设计。
郑重提醒:给出解决方案前,请实际创建Angular 17 SSR项目并验证Dockerfile的可行性。
Docker部署失败情况
我尝试了多种公开方案(已按需修改配置:将Node版本从node:12-slim改为node:18-slim,项目名从sample-angular-app改为example,正确配置端口等),但均失败:
- 某Cloud Run部署方案:缺少
server.js文件,无法运行 - 某Docker容器运行Angular方案:构建成功但无法访问,仅显示NGINX默认页面
- 某NGINX容器化Angular方案:构建成功但连接重置,且每次启动容器都会重新构建应用
- 某Docker+NGINX部署方案:Dockerfile存在语法错误,构建后连接重置
- 某基础容器化Angular方案:无法访问,仅显示NGINX默认页面,但仅需构建一次
- 某旧版Angular SSR Docker示例:仅适配Angular 17之前的SSR,重写后连接被拒绝
内容的提问来源于stack exchange,提问作者user66554
相关产品推荐
相关产品推荐

