6

用云托管CloudBase Run部署图床应用

 3 years ago
source link: https://segmentfault.com/a/1190000040186441
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在开发创作期间,越来越多的开发者出于多样化需求,选择自建图床,自行管理图片,安全便捷。那么,如何优雅地部署一款图床应用呢?本文就以一个开源的多功能图床为例,向大家讲解如何借助云托管(CloudBase Run)在云开发环境中轻松部署一款图床应用。

兰空图床 (Lsky Pro) 已在 Github 上斩获 1.3K+ Stars ,具有操作简便、UI美观、可视化管理、支持接入第三方存储平台等多项优点,目前也已支持一键部署至云开发。

项目主页:https://github.com/wisp-x/lsky-pro

云托管 CloudBase Run 是由云开发提供的新一代云原生应用引擎(App Engine 2.0),支持托管任意语言和框架编写的容器化应用。

部署教程

图层配置见项目主页,下方主要介绍云托管的相关配置操作。

准备工作

开通 CloudBase 云开发环境

注意:

  • 包年包月环境无法开通云托管。
  • 目前,来源为“微信小程序”的环境暂不支持开通云托管。

第 1 步:开通

登录 云开发 CloudBase 控制台,选择一个环境,进入云托管管理页面,单击「立即开通」。

第 2 步:配置云托管

所在地域

目前,云托管已开放上海和广州地域,更多地域将陆续开放。

云托管网络

网络设置包括 私有网络 VPC 和 子网。以环境为维度,云托管中创建的所有服务,都将部署在这同一个 VPC 之中,且成功开通云托管后不支持更换网络设置。

网络设置分为如下两种模式:

1、系统默认配置

云托管将为您自动新建一个 VPC 和子网,并将其绑定您当前的云开发环境。

后续您在当前环境下的云托管中创建的所有服务,都将被部署到这个 VPC 和子网中。

此过程无需您手动进行任何设置。后续您可以在 私有网络控制台 中查看并管理这个由云托管自动创建的 VPC 及子网,也可以将更多云资源部署在这个 VPC 之内,以便这些云资源进行互动。

2、自定义配置

如果您之前已经创建过私有网络 VPC 和子网,并在其中已经部署有其他云资源,且需要您的云托管应用与这些已存在的云资源进行互动,则您可以选择「自定义配置」,然后选择具体的 VPC 和子网。

VPC 只能选择一个,子网支持选择多个。

开通成功

单击「提交」,状态变为开通中,请等待数秒。

开通成功后,您将自动跳转到云托管的服务列表页面。

至此您已经成功开通后云托管服务,您可以单击「新建服务」开始部署我们的图床啦。

项目初始化

进入至项目根目录,键入

touch cloudbaserc.json

配置 Cloudbaserc.json

创建好cloudbaserc.json文件后,编辑文件

{
    "version": "2.0",
    "envId": "{{env.ENV_ID}}",
    "framework":{
        "name":"lsky-pro",
        "plugins":{
            "client": {
                "use": "@cloudbase/framework-plugin-container",
                "inputs": {
                "cpu": 0.5,
                "mem": 1,    
                "serviceName": "lsky-pro",
                "servicePath": "/",
                "localPath": "/",
                "mode":"high-availability",
                "uploadType": "package",
                "containerPort": 80,
                "volumeMounts": {
                    "/var/www/html": "lsky-cfs"
                  }
                }
            }
        },
        "requirement": {
            "addons": [
              {
                "type": "CFS",
                "name": "lsky-cfs"
              },
              {
                "type": "CynosDB",
                "name": "lsky"
              }
            ]
          }
    }
}

更多参数说明,可参考云托管容器插件。

创建 Dockerfile

根据项目的需求,编辑好 Dockerfile 文件以及相关的文件,这里我们就不一一详细说明啦,具体可参考示例仓库内的Dockerfile

部署至云托管

在完成上述的一系列工作之后,我们可以进行最关键的一步 【部署至云托管】。

将项目上传至 Github 或者 Gitee 等代码托管平台,进入云开发控制台,单击「新建」:

填写好相关信息后,点击下一步:

选择地区,并输入我们要创建的数据库管理员密码后,点击下一步:

上述工作完成后,点击「立即开通」:

在等待片刻后(部署可能需要5-10分钟),我们的项目就部署至云开发·云托管啦,我们可以在云环境内看到我们创建的应用。

注:应用需要依赖CFS以及Mysql数据库,因此会创建相关资源。

一般人我不会告诉他,还可以根据云开发 CloudBase Framework 文档,做一个一键部署按钮哦!

配置相关服务

完成上述步骤后,我们已经把我们的应用部署至云托管啦,但是还差最后一步,给我们的图床创建一个数据库(部分应用可自动创建)。我们点击腾讯云控制台菜单,点击「TDSQL-C」。

点击「登陆」

在输入密码后,创建数据库

创建完成后,我们可以回到刚刚的云托管应用界面啦。点击「访问」即可跳转至应用安装页

数据库地址输入我们的内网地址哦!


安装完成后,就大功告成啦!!

添加域名(可选)

点击「访问服务」,添加域名信息

最后根据要求配置好就完成添加啦

  1. 在此示例中,云托管的副本模式为高可用,保留了一个副本数供连接使用;
  2. TDSQL- C数据库会在无连接状态(默认10分钟)下进行暂停,届时访问应用会出现数据库无法连接情况,刷新再次访问则会启动数据库;
  3. 在配置域名后,可进行CDN加速,保证了图片访问的速度。

本示例仓库地址 Github:https://github.com/Handsomedoggy/lsky-pro

云托管 CloudBase Run 官网:https://cloud.tencent.com/product/tcbr

CloudBase Framework 1.5K ✨:https://github.com/Tencent/cloudbase-framework

作者:云开发布道师Doggy 熊二哈

云开发(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
技术交流群、最新资讯关注微信公众号【腾讯云开发CloudBase】


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK