跳到主要内容

云托管容器插件

Tencent CloudBase Framework Container Plugin

Tencent CloudBase Framework Container Plugin

Github License Npm version issue PRs Welcome star

云开发 CloudBase Framework 框架「Container」插件: 通过云开发 CloudBase Framework 框架将项目应用一键部署到云开发的云托管环境,提供生产环境可用的自动弹性伸缩的高性能的容器计算服务。可以搭配其他插件如 Website 插件、Node 插件实现云端一体开发。

功能特性#

  • 节约成本: 资源伸缩,弹性扩缩容,灵活计费,极大节约资源成本
  • 极简配置:自动检测框架,无须配置
  • 语言支持和框架支持广泛
    • Node.JS
    • PHP
    • Java
    • Go
    • Dart
    • Deno

使用方法#

步骤一. 准备工作#

具体步骤请参照 准备云开发环境和 CloudBase CLI 命令工具

步骤二. 进入项目目录进行初始化#

如果是目前已有的后端应用项目

cloudbase

如果想全新开始一个项目,可以直接执行 init 来从模板开始一个项目

cloudbase init

步骤三. 一键部署#

cloudbase framework deploy

配置#

默认情况下不需要任何配置即可使用,以下配置参数针对有特殊需求的场景

配置示例#

cloudbase init 之后会创建云开发的配置文件 cloudbaserc.json,可在配置文件的 plugins 里修改和写入插件配置

{  "envId": "{{envId}}",  "framework": {    "plugins": {      "client": {        "use": "@cloudbase/framework-plugin-container",        "inputs": {          "serviceName": "node-api",          "servicePath": "/node-api",          "localPath": "./"        }      }    }  }}

配置参数说明#

uploadType#

选填,容器镜像代码来源类别,支持package|image|repository3 种,分别代表本地代码包、镜像地址和 git 仓库地址。默认是package, 选择image时需要填写 imageInfo, 选择 repository 需要填写codeDetail

serviceName#

必填,服务名,字符串格式,如 node-api

servicePath#

必填,服务路径配置, 字符串格式, 如 /node-api

localPath#

选填,本地代码文件夹相对于项目根目录的路径,默认值 ./

localAbsolutePath#

选填,本地代码文件夹的绝对路径

version#

选填,版本名,默认值 1.0.0

isPublic#

选填,是否对外网开放访问,默认值 true

flowRatio#

选填,流量占比(0-100),默认值 100

mode#

选填,副本模式

1.4.0 版本以后支持

副本模式,字符串格式,默认值 low-cost,可选值为 low-cost | high-availability

low-cost 代表低成本模式,会有冷启动延时,锁定最小副本数为 0,规格默认值为 0.25C0.5G,副本最小个数不可修改,要修改需要先切换模式。

high-availability 代表高可用模式,不存在冷启动,最小副本数不可以为 0,规格默认值为 1C1G,要修改最小副本数到 0 需要先切换模式。

cpu#

选填,CPU 的大小,0.25-128, 单位:核,默认值 0.25

mem#

选填,Mem 的大小,0.5-128, 单位:G,默认值 0.5

minNum#

选填,最小副本数, 0-50,默认值 0

maxNum#

选填,最大副本数,1-50,默认值 10

policyType#

选填,策略类型(cpu),默认值 cpu

policyThreshold#

选填,策略阈值,1-100, 默认值 60

containerPort#

选填,服务端口,默认值 80

dockerfilePath#

选填,Dockerfile 的路径,默认值 ./Dockerfile

buildDir#

选填,构建目录,默认值 ./

envVariables#

选填,环境变量键值对,会被注入到云托管的运行时环境变量中

imageInfo#

uploadType 填写为 image时需要填写 imageInfo,类型是对象格式

属性名称类型长度是否必填描述
imageUrlString1-512镜像拉取地址

imageUrl 格式为 [registry-url]/[namespace]/[image]:[tag],支持腾讯云 ccr.ccs.tencentyun.com 上的镜像地址,也支持 dockerhub 公开的镜像,如 nginx:latest

例如

{  "envId": "{{envId}}",  "framework": {    "name": "capp-example",    "plugins": {      "client": {        "use": "@cloudbase/framework-plugin-container",        "inputs": {          "serviceName": "node-api",          "servicePath": "/node-api",          "localPath": "./",          "uploadType": "image",          "imageInfo": {            "imageUrl": "ccr.ccs.tencentyun.com/tcb-100010952056-rjdt/webpage_node-api:node-api-001-1597238358"          }        }      }    }  }}

codeDetail#

uploadType 填写为 repository 时需要填写codeDetail,类型是对象格式

属性名称类型长度是否必填描述
nameCodeRepoName 对象1-512repo 的名字
urlString1-512repo 的 url

例如

{  "envId": "{{envId}}",  "framework": {    "name": "capp-example",    "plugins": {      "client": {        "use": "@cloudbase/framework-plugin-container",        "inputs": {          "serviceName": "deno",          "servicePath": "/deno",          "localPath": "./",          "uploadType": "repository",          "codeDetail": {            "name": "deno-docker",            "url": "https://github.com/TabSpace/deno-docker"          }        }      }    }  }}

volumeMounts#

挂载目录设置,1.4.0 版本以后支持

类型是对象格式,key 为挂载路径,value 为挂载的 CFS Addon 的 Name

例如

{  "version": "2.0",  "envId": "{{env.ENV_ID}}",  "framework": {    "name": "grafana",    "plugins": {      "client": {        "use": "@cloudbase/framework-plugin-container",        "inputs": {          "mode": "low-cost",          "serviceName": "grafana",          "servicePath": "/",          "localPath": "./",          "uploadType": "package",          "containerPort": 3000,          "envVariables": {},          "volumeMounts": {            "/var/lib/grafana": "grafana-cfs"          }        }      }    },    "requirement": {      "addons": [        {          "type": "CFS",          "name": "grafana-cfs"        }      ]    }  }}

customLogs#

可选,用户自定义采集日志路径, 1.4.0 版本以后支持

字符串格式,最长支持 1024

initialDelaySeconds#

可选,延迟多长时间开始健康检查

单位 s,支持设置 0-1000

bumpVersion#

可选,是否自动创建新版本

选择自动创建新版本,可以在控制台进行流量的灰度和控制,不选择的情况下会自动原位更新

versionRemark#

可选,版本备注信息

更多插件#

请访问 CloudBase Framework 插件列表 搭配使用其他插件

文档资料#