关于应用:如何将开源容器应用快速打造为云开发应用

42次阅读

共计 3562 个字符,预计需要花费 9 分钟才能阅读完成。

什么是云开发利用

云开发利用能够了解为运行在云开发环境的利用,例如一个蕴含前后端、数据库等能力等服务,能够通过一键部署,间接部署在云开发环境中,应用云开发底层的各项 Serverless 资源,享受弹性免运维的劣势。

一个云开发利用能够拆解为三个局部,包含代码、申明式配置和环境变量信息。

上面咱们以开源存储我的项目 Nextcloud 为例,演示如何将一个开源的容器化的我的项目疾速打造为能够一键部署的云开发利用。

Nextcloud 是一套集体云存储解决方案,内置了图片相册、日历联系人、文件治理、RSS 浏览等丰盛的利用,这个利用自身是开源的,同时提供了部署的 Docker 镜像,须要搭配 MySQL 数据库,上面会演示如何实现这个利用的一键部署。

通过云开发一键部署,能够部署在用户的云开发环境中,无需关怀服务器治理和运维。

一键部署的流程也十分简洁,只需三步即可在云开发控制台疾速装置部署:

第一步:抉择云开发环境(留神:须要抉择一个 HTTP 拜访门路的根门路未被占用的环境)。

第二步:能够进行网络配置、标签配置,以及关联或者创立云上的资源,比方这个利用依赖了 CFS 来实现容器的文件存储,应用了 CynosDB for MySQL(Serverless 版本)来作为数据库依赖。

第三步,点击 实现,期待装置实现之后即可在控制台关上利用的拜访地址来进行拜访。

如何打造一个云开发利用

那么问题来了:如何打造这样一个反对一键部署的云开发利用呢?

整体的步骤分为 开发 配置 部署验证 三个环节。这篇文档会次要介绍配置和部署验证两个环节。

开发

开发环节在此不作重点介绍,能够通过文末的源码链接来理解具体的实现。

开发用到的云开发和云上其余资源

云开发的云托管服务:应用云托管来部署利用的后端服务;

CynosDB:应用 CynosDB 数据库存储数据;

CFS:应用 CFS 长久化存储数据。

配置

有了我的项目的代码之后,如何把这个利用打造成为能够 一键部署 的云开发利用呢?

上面会分步骤介绍如何通过配置来打造云开发利用。

配置利用根底信息

首先创立一个 cloudbaserc.json 配置文件,文件的内容如下。

{"envId": "{{env.ENV_ID}}",
  "version": "2.0",
  "$schema": "https://framework-1258016615.tcloudbaseapp.com/schema/latest.json",
  "framework": {
    "name": "nextcloud",
    "plugins": {}}
}

要点

  • envId 指定利用部署在哪个环境下,这里咱们用模板变量 env.ENV_ID示意读取 ENV_ID 环境变量;
  • framework.name 是利用的英文名,只反对 A-Z a-z 0-9 – 和 _,长度 1-32 位;
  • framework.plugins 是利用用到的插件信息,这里先留空,上面咱们依据资源和利用类型来填写;
  • 如果须要理解更多我的项目信息的配置,请参考利用我的项目信息阐明文档。

应用云托管插件

这一步咱们须要应用云托管插件,来自动化地部署容器服务到云开发的云托管上。

framework.plugins 下减少一个字段 server,字段的值是一个 JSON 对象。

{
  "server": {
    "use": "@cloudbase/framework-plugin-container",
    "inputs": {
      "cpu": 0.5,
      "mem": 1,
      "serviceName": "nextcloud",
      "servicePath": "/",
      "uploadType": "image",
      "containerPort": 80,
      "imageInfo": {"imageUrl": "nextcloud:20"},
      "envVariables": {"MYSQL_HOST": "{{env.DB_IP}}:{{env.DB_PORT}}",
        "MYSQL_DATABASE": "nextcloud"
      },
      "volumeMounts": {"/var/www/html": "nextcloud-cfs"}
    }
  }
}

配置利用参数和依赖

在部署利用时,还可能须要用户来输出一些自定义的参数,或者配置像上文提到的云上内部资源。

这些都能够在framework.requirement 中进行配置:

{
"requirement": {
"addons": [
{
"type": "CFS",
"name": "nextcloud-cfs"
},
{
"type": "CynosDB",
"name": "nextcloud",
"envMap": {
"IP": "DB_IP",
"PORT": "DB_PORT",
"USERNAME": "MYSQL_USER",
"PASSWORD": "MYSQL_PASSWORD"
}
}
]
}
}

部署验证

生成部署按钮

接下里咱们就能够上传代码到 Git,来生成一个一键部署按钮了。首先关上一键部署按钮生成地址:

https://docs.cloudbase.net/framework/deploy-button.html

在页面当中输出我的项目的 Git 地址,配置文件所在目录以及分支信息,就能够主动生成上面的部署按钮代码片段。

这里会生成部署按钮的几种格局的代码片段,能够在不同的场景下嵌入部署按钮来让用户部署你的利用。

其中:

  • Markdown 代码适宜用在 README、Mardkown 编写的博客文章等场景;
  • HTML 代码适宜用在公众号、HTML 编写的网站 / 博客文章等场景;
  • URL 链接能够在任何反对超链接的页面应用,您能够复制下方链接,粘贴到对应的页面中。

生成完部署按钮之后,能够依照云开发利用模板来编写 README 文档,提交利用到云开发利用核心。

利用模板地址:

https://github.com/TencentCloudBase-Marketplace/app-template

总结

在这篇文章中,咱们理解了什么是云开发利用,并以 Nextcloud 我的项目为例,介绍了如何将开源的容器化的我的项目,疾速打造为能够一键部署的云开发利用。

通过实战,咱们也展现了云开发以及 CloudBase Framework 的应用:只须要实现开发、配置以及部署验证,就能够疾速将利用变为能够疾速散发的程序,用户无需手动搭建环境和配置,即可自动化部署利用。

把握打造云开发利用技巧后,邀您加入云开发利用征集流动,提交作品即可取得云开发文化衫一件,更有机会赢取 Switch、Cherry 键盘、Kindle 等好礼,快点击下方图片理解详情吧:

参考文档

我的项目演示地址:

https://fx-1259727701.ap-shanghai.service.tcloudbase.com/

本我的项目的源码能够在 Github 中查看和获取:

[https://github.com/TencentClo…
](https://github.com/TencentClo…

一键部署按钮生成器:

https://docs.cloudbase.net/framework/deploy-button.html

云开发利用模板:

https://github.com/TencentCloudBase-Marketplace/app-template

云开发利用源码列表:

https://github.com/TencentCloudBase-Marketplace

Nextcloud 官网开源仓库:

https://github.com/nextcloud/server

云开发利用核心:

https://www.cloudbase.net/marketplace.html

CloudBase Framework:

https://github.com/Tencent/cloudbase-framework

产品介绍

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、主动弹性扩缩的后端云服务,蕴含计算、存储、托管等 serverless 化能力,可用于云端一体化开发多种端利用(小程序,公众号,Web 利用,Flutter 客户端等),帮忙开发者对立构建和治理后端服务和云资源,防止了利用开发过程中繁琐的服务器搭建及运维,开发者能够专一于业务逻辑的实现,开发门槛更低,效率更高。
开明云开发:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
产品文档:https://cloud.tencent.com/product/tcb?from=12763
技术文档:https://cloudbase.net?from=10004
技术交换加 Q 群:601134960
最新资讯关注微信公众号【腾讯云云开发】

正文完
 0