使用Angular CLI创建的应用程序,通过IBM Cloud的工具链进行部署

想做的事情

    • IBM Cloudを使いたい

 

    • Angular CLIを使ってアプリケーションを作りたい

 

    DevOps的な事をしたい

经过各种实验的结果,我觉得使用IBM Cloud的工具链可以实现,所以这里是我做的备忘录。可能还有更好的方法,但总体来说,这个方法可行。参考了下面的文章:在Bluemix DevOps上部署Angular。

在我尝试的过程中,有一些不同的步骤,我将它们作为”问题点”记录下来。

开发环境

    • Mac OS

10.13.6

Node:

10.8.0

Angular CLI

6.1.3

Git

2.16.2
IBM CloudのGitにssh公開鍵を登録して、SSH接続が出来るように設定しておく

整体的趋势

    1. 在IBM云上构建Node.js的Cloud Foundry应用程序

 

    1. 在IBM云上构建工具链

 

    1. 在IBM云上配置交付管道

 

    1. 使用Angular CLI创建应用程序

 

    1. 将应用程序推送到远程

 

    确认应用程序

在IBM Cloud上,构建一个Node.js的Cloud Foundry应用。

登入IBM云

登入IBM云端

スクリーンショット 2018-08-15 20.31.08.png
スクリーンショット 2018-08-15 20.31.40.png

在IBM Cloud上搭建工具链。

スクリーンショット 2018-08-15 20.36.02.png
スクリーンショット 2018-08-15 20.37.53.png
スクリーンショット 2018-08-15 20.39.03.png
スクリーンショット 2018-08-15 20.39.25.png

设定「交付管道」,然后点击「创建」。

3. 在IBM云上,配置交付流程。

スクリーンショット 2018-08-15 20.43.12.png
スクリーンショット 2018-08-15 21.30.05.png
スクリーンショット 2018-08-15 21.33.25.png

选择npm作为构建类型

スクリーンショット 2018-08-15 21.25.57.png

在构建脚本中输入以下内容。
出现错误信息“NODE_VERSION必须大于等于8.10”,因此我指定了8.10作为版本。

#!/bin/bash
export NVM_DIR=/home/pipeline/nvm
export NODE_VERSION=8.10
export NVM_VERSION=0.33.2

npm config delete prefix \
  && curl https://raw.githubusercontent.com/creationix/nvm/v${NVM_VERSION}/install.sh | sh \
  && . $NVM_DIR/nvm.sh \
  && nvm install $NODE_VERSION \
  && nvm alias default $NODE_VERSION \
  && nvm use default \
  && node -v \
  && npm -v
npm install -g @angular/cli

npm install
ng build --prod --aot
rm -rf node_modules/

使用Angular CLI创建应用程序。

创建一个新的模板

ng new my-great-angular-app

进入文件夹

cd my-great-angular-app/

在项目根目录下,使用以下内容创建名为app.js的新文件。
需要注意的是,app.use的参数部分必须包含/dist/my-great-angular-app和生成的文件夹路径,否则无法正常运行。

// This application uses express as its web server
// for more info, see: http://expressjs.com
var express = require('express');

// cfenv provides access to your Cloud Foundry environment
// for more info, see: https://www.npmjs.com/package/cfenv
var cfenv = require('cfenv');

// create a new express server
var app = express();

app.use(express.static(__dirname + '/dist/my-great-angular-app'));

// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();

// start server on the specified port and binding host
app.listen(appEnv.port, '0.0.0.0', function() {

    // print a message when the server starts listening
  console.log("server starting on " + appEnv.url);
});

请使用以下内容新建manifest.yml文件。同样,请将其放在项目的根目录下。
注意事项:根据您创建应用程序所在的地区,您需要更改domain字段。请参考:dw Answers。

applications:
- name: my-great-angular-app
  memory: 128M
  buildpack: sdk-for-nodejs
  host: my-great-angular-app
  domain: mybluemix.net

在package.json中添加express和cfenv模块。

npm install express cfenv --save

只需要一种选项,将以下内容用中文进行翻译:编辑 package.json 中的 start 部分。

"start": "node app.js"

将应用程序远程推送

回到工具链,点击“Git”图标,打开Git。

スクリーンショット 2018-08-15 20.44.14.png
スクリーンショット 2018-08-15 20.46.29.png

使用上述的SSH连接信息进行push操作。

git remote rename origin old-origin
git remote add origin git@git.ng.bluemix.net:user_name/my-great-angular-app.git
git push -u origin --all
git push -u origin --tags

6. 确认应用程序

スクリーンショット 2018-08-15 21.37.03.png

总结

通过使用IBM Cloud的工具链,我们现在能够开发基于DevOps的应用程序。当我们修改代码并将其推送到远程时,这将触发应用程序的部署并进行更新。

bannerAds