2

CodeGalaxy 介绍

CodeGalaxySwoole 官方推出的 ServerLess 平台,旨在帮助开发者更方便地实现应用的开发部署,在一个平台就可以完成代码托管、云端应用开发调试和构建、多云部署以及接入层管理。

CodeGalaxy 是完全免费的,平台由识沃科技 CodeGalaxy 团队维护,用户无需为软件服务付费,只需要购买相应云厂商的服务器资源即可。CodeGalaxy 支持多种语言,包括 PHPGolangJavaNode.js 等。

CodeGalaxy Cli

CodeGalaxy 除了 Web 管理界面之外,最新还提供了强大的 Cli 命令行工具。CodeGalaxyCli 客户端工具作为一等公民,Cli 工具可以完成所有工作,还可以编写 shell 脚本实现更复杂的逻辑。

在最新版本的 CodeGalaxy Cli 中增加了 galaxy execgalaxy cp 命令,可以直接登录到线上的 Pod 的终端、在线上 Pod 和本地之间下载上传文件。在文章末尾会介绍这两条命令的使用方法。

一键安装 CodeGalaxy Cli

$ curl -s https://s.code-galaxy.net/cli-install.sh | bash -

在上一篇文章(使用 CodeGalaxy Cli 快速部署 Hyperf 应用)中已经介绍了 Cli 工具的详细信息,以下不再赘述。本文主要介绍 Laravel 项目如何使用 Code-Galaxy Cli 来构建和部署。

创建新项目

可使用 galaxy quick 命令来自动创建新项目,创建过程中会询问 Laravel 版本、环境、域名、所要部署的集群。目前 CodeGalaxy 提供了阿里云、腾讯云托管集群,可直接用这两个集群来做试用。正式使用前,需要用户导入自己的 K8s 集群,或者添加云账户并创建新的 K8s 集群。

galaxy quick laravel myproj

选择版本

选择环境

选择集群

选择域名

可以输入域名,也可以自动生成一个测试的local名称。

galaxy quick 命令会自动创建 git 仓库,并完成 docker 镜像构建、云端部署、网关配置等过程,若选择了测试域名,还会自动添加到 /etc/hosts 本机名称。并自动打开浏览器。大家就可以看到熟悉的 Laravel Hello World 页面了。

修改代码后, pushgit 仓库就可以使用 galaxy buildgalaxy deploy 进行构建和部署了,也可以使用 galaxy route 添加更多域名。

导入已有项目

对于已有项目,在本地 git clone 项目代码后,可进入目录后,在终端执行:

galaxy init

来完成应用的初始化,在 CodeGalaxy 平台自动创建一个应用。需要选择应用的编程语言、框架等信息,若存在多个git remote需要选择一个可以被CodeGalaxy平台访问的地址,当前用户加入了多个组织还需要需要选择所在组织。

初始化成功后,就可以使用 builddeployroute 等命令来完成应用的构建、部署、接入。

构建

galaxy build

构建完成后会收到 “构建成功” 的微信、邮件通知。

部署

galaxy deploy

选择镜像,如果有多个实例则需要选择具体要部署的实例名称。

接入

第一次设置域名时需要使用 route 指令来增加域名和路径,例如 swoole.com 路径 /test 表示,http://swoole.com/test 会路由到上面部署的实例。

galaxy route

进入终端

可使用 galaxy exec 在线上实例的 Pod 中执行一条命令,或者进入 bash 终端,进行操作。

格式为

galaxy exec (POD | TYPE/NAME) [-c CONTAINER] -- [command]

若只有一个 Pod ,可省略 Pod 参数,直接执行 galaxy exec -- bash 进入终端。

htf@htf-ThinkPad-T470p:~/workspace/projects/swoole.com$ galaxy exec -- bash
Welcome to `CodeGalaxy`
bash-5.1#

复制文件

可使用 galaxy cp 命令从线上实例下载文件到本地,或者上传本地文件到线上。

格式为

galaxy cp <file-spec-src> <file-spec-dest> [flags]
支持复制单个文件或者复制整个目录,命令格式与 docker cp 或者 linux cp 是一致的
线上路径需要以 <pod>:<path> 表示

这里我们编写了一个 info.php 页面,并用 galaxy cp 复制到了线上的 public 使用 curl 或者 Chrome 浏览器就可以访问了。

如果我们不想提交 git 或者重新构建镜像,而是直接在线上某个实例 Pod 中调试,就可以使用 galaxy cp 将文件直接复制到线上。

galaxy cpexec 可能会存在一定的风险,因此需要项目组管理员权限才可以完成,项目组的普通成员无法执行此操作

微信交流群

 title=


韩天峰
7.9k 声望11.1k 粉丝

Swoole 开源项目创始人