我一直在尝试使用Google App Engine部署Angular2应用程序,但一直遇到问题。尝试部署时出现以下错误:
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
yarn start v0.21.3
$ ng serve
** NG Live Development Server is running on http://localhost:8080 **
52% building modules 357/395 modules 38 active .../position/overlay-position-builder.js
如果给出@angular/material
行,则错误似乎指向.../position/overlay-position-builder.js
。
我使用@angular-cli
构建了应用。
我能看到的日志中没有任何有价值的内容。
关于问题可能是什么以及如何解决这个问题的任何想法?
答案 0 :(得分:1)
<强> ISSUE:强>
ERROR: (gcloud.app.deploy) Error Response: [9]
通常是由导致not found
错误的依赖性问题引起的。
使用创建Dockerfile here报告并解决了类似问题或sh: 1: ng: not found
。
在这篇原始帖子中,yarn start v0.21.3
似乎是个问题。
解决方案:使用angular-cli创建的Angular2项目将包含带有devDependencies部分的根package.json
文件,如下例所示:
"devDependencies": {
"@angular/cli": "1.4.2",
...
...
},
注意:要获取任何其他依赖项,例如@angular/material
和yarn start v0.21.3
等命令。 Dockerfile
必须包含通过命令行安装这些依赖项的命令。
在package.json文件的相同路径中创建app.yaml
和Dockerfile
,如下例所示:
angular2-example-app
├── e2e
├── node_modules
├── src
├── package.json
├── app.yaml
├── Dockerfile
app.yaml
文件需要以下设置:(app.yaml documentation):
# [start app_yaml]
runtime: custom
env: flex
Dockerfile
将需要用户可以在命令行上调用的所有命令来组合图像。
注意: npm install -g @angular/cli
命令在以下示例中运行:
FROM alpine:latest
MAINTAINER yourname
# update alpine linux
RUN apk update && apk upgrade && \
apk add nodejs && \
# may comment this line in my computer.
apk add nodejs-npm && \
npm install -g @angular/cli
# add source code to images
ADD . /angular2-example-app
# switch working directory
WORKDIR /angular2-example-app
# install dependencies
RUN npm install
# expose port 4200
EXPOSE 4200
# run ng serve on localhost
CMD ["ng","serve", "--host", "0.0.0.0", "--disable-host-check"]
将应用部署到您的Google云端App Engine:gcloud app deploy