在Google Cloud上部署Angular2应用程序时出错

时间:2017-04-03 23:43:24

标签: angular google-app-engine google-cloud-platform angular-material

我一直在尝试使用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构建了应用。

我能看到的日志中没有任何有价值的内容。

关于问题可能是什么以及如何解决这个问题的任何想法?

1 个答案:

答案 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/materialyarn start v0.21.3等命令。 Dockerfile必须包含通过命令行安装这些依赖项的命令。

在package.json文件的相同路径中创建app.yamlDockerfile,如下例所示:

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

gcloud documentation