概要
目前计算巢已经支持根据仓库创建服务,仅需要选择架构,软件类型等参数即可实现快速创建。该功能涉及多种软件类型与架构、服务形态等,本文针对其中一种软件类型--Docker compose,介绍如何快速创建一个计算巢服务。
Github Demo:https://github.com/aliyun-computenest/quickstart-docker-compose-demo
概念解释
计算巢服务:云资源与软件或应用的编排集合。一旦服务被发布和上线,终端用户就可以基于这些服务创建实例,以此来获取服务提供商的具体服务内容。
服务商:软件提供者或开源代码仓库持有者。
用户:希望使用服务商的软件的人群。
服务实例:通过计算巢服务创建出的软硬件资源的聚合体,用户可通过实例直接使用服务商的软件。
操作步骤
服务创建
- 准备好个人仓库(可以直接fork演示Demo的仓库),仓库中需要有docker-compose.yaml文件,本文实践中演示的docker-compose.yaml的内容如下所示:
version: "3" services: halo: image: registry.fit2cloud.com/halo/halo:2.16 restart: on-failure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./halo2:/root/.halo2 ports: - "8090:8090" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"] interval: 30s timeout: 5s retries: 5 start_period: 30s command: - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo - --spring.r2dbc.username=halo # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。 - --spring.r2dbc.password=openpostgresql - --spring.sql.init.platform=postgresql # 外部访问地址,请根据实际需要修改 - --halo.external-url=http://localhost:8090/ halodb: image: postgres:15.4 restart: on-failure:3 networks: halo_network: volumes: - ./db:/var/lib/postgresql/data healthcheck: test: [ "CMD", "pg_isready" ] interval: 10s timeout: 5s retries: 5 environment: - POSTGRES_PASSWORD=openpostgresql - POSTGRES_USER=halo - POSTGRES_DB=halo - PGUSER=halo networks: halo_network:
该docker-compose.yaml来自于halo官方部署文档:https://docs.halo.run/getting-started/install/docker-compose
- 进入计算巢控制台,并点击“创建新服务”。
- 选择“通过仓库创建服务”,然后依次选择github/gitee,仓库用户/组织、仓库名称和分支。注意:如果未授权,请先点击“前往授权”。
- 勾选后弹出配置项,根据实际情况进行填写。
- 配置好后点击“下一步”然后填写服务的基本信息,如服务名称等。
- 点击“创建服务”。然后返回到“我的服务”,可以点击“查看日志”观察服务的创建进度,当日志出现“Build success”后标志创建成功。此时刷新页面就可以查看服务的详情了。
高级配置
本部分对服务配置参数:自定义服务参数,进行展开讲解。
- 如果您配置了这个参数,那么当您的用户创建实例时则需要填写。
- 隐藏输入的参数值(敏感参数):打开时,则代表该参数为敏感参数,显示时变为“***”。
- 类型:代表这个参数的类型,如String,Number等。
- AssociationProperty:代表前端渲染参数填写框的样式,具体可参考该文章。
- 可选值:该处可以设置单个或多个可选值,用户只能在这些值里做选择。
- 用户见到的参数名:输入框展示的文字。
- 英文参数名:可在下一个填写位置“运行命令”中引用。
用法举例:当您的docker-compose.yaml文件中有需要用户输入的自定义参数,例如password时,可以如下操作:
- 自定义服务参数中新增类型为String的参数。
- 执行命令中引用该参数,并用sed命令替换docker-compose.yaml中的指定值。通过该方法可以在用户正式部署时再填入密码参数。
服务实例创建
- 刚创建好的服务是draft版本,在正式发布服务前,可以先测试一下创建的服务实例是否符合预期。
- 点击后进入部署参数填写页面,例如ECS实例规格,密码登参数。填写完后点击“下一步:确认订单”,查看了具体参数和资费后点击“立即创建”。随后服务实例进入部署中状态。
- 部署完成后,会返回一个url链接
- 点击该链接。可以看到已经能打开Halo的控制台了。说明实例部署成功
发布上线
刚创建出来的服务处于draft版本,测试正常部署后可以进行服务发布,按照下面的流程即可。