uniquejava / blog

My notes regarding the vibrating frontend :boom and the plain old java :rofl.
Creative Commons Zero v1.0 Universal
11 stars 5 forks source link

bluemix #76

Open uniquejava opened 7 years ago

uniquejava commented 7 years ago

Generate and Deploy Node.js Applications using Bluemix

手动push

在bluemix上建个node.js runtime app, 建好后页面中会出现以下deploy的步骤.

bx --version
bluemix api https://api.ng.bluemix.net
bluemix login -u yinsb@xxx.com -o org_ccs -s dev -sso
bluemix app delete ccagent #(有时改了代码push后不生效, 先执行这句删除app)
bluemix app push ccagent #(第二次push会快很多, delete后会变得很慢)

这是一个最简单的manifest.yml

applications:
- host: xxx
  disk: 512M
  name: xxx
  path: .
  domain: mybluemix.net
  instances: 1
  memory: 512M

手动push的时候需要将node_modules和bower_components排除在上传的文件列表之外, 这样能大大加快cf push的速度. 其中.cfignore基本拷贝自.gitignore

.idea/
*.log
node_modules/
public/libs
public/css/*.map
public/css/*.css

Continuous Delivery自动部署.

在bluemix上创建 node app右下角会有integrate CI的按钮, 点一下就能创建一个toolchain + pipeline, 在里边可以选择IBM Enterprise Github WhiteWater. 选择后有一个authorize的过程. 之后就能集成这项服务. 注意的地方:

  1. 不用自己cf push了, bluemix会自己从github上拉代码.
  2. 删除.cfignore, 至少要去掉排除bower_componets的选项, 不然deploy的时候会忽略build阶段下载的js文件.
  3. 在build阶段要新增一个类型为shell script的JOB, 用来执行bower install命令.
  4. 真心不要依赖bower, 在bluemix上访问静态文件简单就是抽风, 刷一下jquery.min.js 404, 再刷一下jquery 200 semantic又404. 极其不稳定. 能想到的办法一个是使用CDN(已验证可行), 另一个是使用gulp inject 把js和css打包成单个文件(还没试) us south节点问题, 换成au-syd就正常了.

JOB的内容如下: 不需要, postinstall的位置放错了, 汗.

#!/bin/bash
npm install 
node_modules/bower/bin/bower install

换了个节点 就好了.

配置如下

applications:
- host: xxx
  disk: 512M
  name: xxx
  path: .
  domain: au-syd.mybluemix.net
  instances: 1
  memory: 512M
  buildpack: sdk-for-nodejs
  command: npm start

bluemix一天一个做法, 以上配置叕deprecated了

applications:
  - name: xxx
    routes:
      - route: xxx.mybluemix.net
    disk: 512M
    path: .
    instances: 1
    memory: 512M
    buildpack: sdk-for-nodejs
    command: npm run watson

References

  1. Bower in a Bluemix app
  2. How do I use Bower to manage my packages with Bluemix?
  3. How can I configure Bluemix toolchain to use IBM github?
  4. flask machine learning
uniquejava commented 6 years ago

发布spring boot的

先mvn clean package -DskipTests=true, 然后

applications:
- instances: 1
  timeout: 180
  name: xxx
  buildpack: java_buildpack
  path: ./target/xxx-1.0-SNAPSHOT.jar
  memory: 512MB
  domain: au-syd.mybluemix.net
  host: xxx
  env:
    spring.profiles.active: dev

使用cf push app_name -f manifest-dev.yml 推送 (不用事先在bx上创建app)

发布liberty的

参考: https://my.oschina.net/uniquejava/blog/283258 先打zip包

C:\IBM\was855nalp\bin> server package simpleServer --archive=hellotest.zip --include=usr 
Packaging server simpleServer. 
Server simpleServer package complete in C:\IBM\was855nalp\usr\servers\simpleServer\hellotest.zip

然后push

cf push cyperhellotest --no-manifest --no-start -p C:\IBM\was855nalp\usr\servers\simpleServer\hellotest.zip 

然后启动: cf start cyperhellotest

监控日志: cf logs app_name

查看最近的日志: cf logs app_name --recent

uniquejava commented 6 years ago

cfignore

Does cf push respect the use of .gitignore? 答案是NO! 所以嘛还是老老实实的定义一个.cfignore.

login

ibmcloud login -a https://api.au-syd.bluemix.net --sso
ibmcloud login --apikey gJR9Txxxx # 登录成功后需要关闭代码才能执行下面的语句
ibmcloud target --cf # 选择org和space
ibmcloud ks cluster-create --name xxcluster
# 以下操作在创建cluster完成后的access页面会有提示
ibmcloud cs region-set ap-south
ibmcloud cs cluster-config xxcluster
export KUBECONFIG=/Users/$USER/.bluemix/plugins/container-service/....
kubectl get nodes
# 等等cluster准备就绪的过程中可以做下面的事情
ibmcloud plugin install container-registry -r Bluemix
ibmcloud login -a https://api.ng.bluemix.net
ibmcloud cr namespace-add <my_namespace>
docker tag hello-world registry.ng.bluemix.net/<my_namespace>/<my_repository>:<my_tag>
docker tag xxx-service:1.0.0 registry.au-syd.bluemix.net/xxx_ns/xxx-service:1.0.0
docker push registry.ng.bluemix.net/<my_namespace>/<my_repository>:<my_tag>
docker push registry.au-syd.bluemix.net/xxx_ns/xxx-service:1.0.0
ibmcloud cr image-list

## 查看日志
kubectl get pod
kubectl logs pod-name
uniquejava commented 4 years ago

IBM Cloud一天一个做法, 以上步骤叒过期了

  1. 不用指定api endpoint了。 只有唯一的一个 https://cloud.ibm.com