IBM Cloud

IBM Cloud Code Engine 入门

一个简单的小例子,演示Nodejs工程如何发布到IBM Cloud Code Engine。

1.准备好一个简单的Nodejs Demo

server.js

"use strict";
Object.defineProperty(exports, "__esModule", {
  value: true
});
var express = require("express");
var bodyParser = require('body-parser');
var path = require("path");
var request = require('request');
var app = express();

app.use(bodyParser.json());

app.get('/ceRequest', function (req, res) {
  res.end("ok");
});

var router = express.Router();
var serverPort = process.env.PORT || 8081;
var server = app.listen(serverPort, function () {
  console.log("Server Start");
});

package.json

{
  "name": "CeDemo",
  "version": "1.0.0",
  "description": "CeDemo",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.16.4",
    "express-handlebars": "^3.1.0",
    "request": "^2.88.2"
  }
}

Dockerfile

#设置基础镜像,如果本地没有该镜像,会从Docker.io服务器pull镜像
FROM node

#创建app目录,保存我们的代码
RUN mkdir -p /var/CeDemo
#设置工作目录
WORKDIR /var/CeDemo

#复制所有文件到 工作目录。
COPY . /var/CeDemo

RUN npm install

#暴露container的端口
EXPOSE 8081

#运行命令
CMD ["npm", "start"]

2.上传工程到Github上去。

3.生成SSH Key(Code Engine连接GitHub用)
  • Mac系统下查看和生成SSH Key
①:打开终端 查看本地是否存在SSH-Key
      ls -al ~/.ssh

   如果终端输出的是如下内容:证明本地没有生成的SSH Key,请执行第②步。
      No such file or directory

   如果终端输出的是如下内容:证明本地已经存在SSH Key 文件,请执行第③步。
      id_rsa  id_rsa.pub
   注:id_rsa.pub是公钥,在GitHub使用。 id_rsa是私钥,在Code Engine使用

②:如果没有,生成新的SSH Key
      ssh-keygen -t rsa -C"you_email"


③:查看SSH Key
    cat /Users/xxx/.ssh/id_rsa.pub
    xxx是你的电脑用户名,例如:howieMacBook-Pro:~ howie$中的howie关键字。
    复制生成好的SSH Key 添加到 GitLab 或者GitHub中的SSH Key中即可。



  • 登录到github 点击Settings
  • 点击SSH and GPG keys –> New SSH Key
  • 在终端打开公钥 cat /Users/ouka/.ssh/id_rsa.pub –> 拷贝到githubSSH key上 –> Add SSH Key

3.创建IBM Cloud Container Registry服务
  • Code Engine需要把代码包装成docker容器的,我们把docker镜像注册到IBM Cloud Container Registry上。https://cloud.ibm.com/registry/catalog
  • 创建一个名称空间,例子里面创建了cedemonm

4.创建IBM Cloud Code Engine服务
  • 登陆IBM Cloud仪表盘,创建Code Engine服务
  • 这里我们选择从 Github 也就是源代码开始创建
  • 选择应用程序–>输入名称–>创建项目–>选择位置–>输入项目名称–>选择资源组–>点击创建按钮
  • 点击 指定构建详细信息–>代码存储库访问权–>创建代码存储库访问权。

  • 在Mac终端上【cat /Users/ouka/.ssh/id_rsa】 命令查询私钥,并把私钥配置到存储库访问权上。
  • 配置代码存储库URL ssh方式 –> 选择存储库访问权 –>选择分支名称 –>下一步
  • 策略选择Dockerfile–>下一步
  • 注册表服务器:默认 注册表访问权:自动 名称空间:步骤3创建的(cedemonm) 储存库:默认
  • 侦听端口:8081 和Nodejs暴露的端口一致 最小实例数:1 最大实例数:2
  • 点击完成后,就开始部署了,等待完成即可。
  • 部署成功后,会显示就绪。也会看到自动分配的URL
  • 试验一下,返回OK,发布成功。

5.可以用下面的方法查看应用程序的log
  • 在Mac终端Login IBM Cloud
ibmcloud login -sso 
  • 选择资源组
ibmcloud target -g xxxx
  • 切换区域
ibmcloud target -r jp-tok  
  • 选择项目
ibmcloud ce project select --name demo666 
  • 列出所有应用程序
ibmcloud ce application list 
  • 查看log
ibmcloud ce application logs --application cedemopj