CodeGalaxy 介绍
CodeGalaxy
是 Swoole
官方推出的 ServerLess
平台,旨在帮助开发者更方便地实现应用的开发部署,在一个平台就可以完成代码托管、云端应用开发调试和构建、多云部署以及接入层管理。
CodeGalaxy
是完全免费的,平台由识沃科技 CodeGalaxy
团队维护,用户无需为软件服务付费,只需要购买相应云厂商的服务器资源即可。CodeGalaxy
支持多种语言,包括 PHP
、Golang
、Java
、Node.js
等。
- Code-Galaxy 官网: https://code-galaxy.net/
CodeGalaxy Cli
CodeGalaxy
除了 Web
管理界面之外,最新还提供了强大的 Cli
命令行工具。CodeGalaxy
将 Cli
客户端工具作为一等公民,Cli
工具可以完成所有工作,还可以编写 shell
脚本实现更复杂的逻辑。
在最新版本的 CodeGalaxy Cli
中增加了 galaxy exec
和 galaxy 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
页面了。
修改代码后, push
到 git
仓库就可以使用 galaxy build
和 galaxy deploy
进行构建和部署了,也可以使用 galaxy route
添加更多域名。
导入已有项目
对于已有项目,在本地 git clone
项目代码后,可进入目录后,在终端执行:
galaxy init
来完成应用的初始化,在 CodeGalaxy
平台自动创建一个应用。需要选择应用的编程语言、框架等信息,若存在多个git remote
需要选择一个可以被CodeGalaxy
平台访问的地址,当前用户加入了多个组织还需要需要选择所在组织。
初始化成功后,就可以使用 build
、deploy
、route
等命令来完成应用的构建、部署、接入。
构建
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 [flags]
支持复制单个文件或者复制整个目录,命令格式与docker cp
或者linux cp
是一致的
线上路径需要以表示
:
这里我们编写了一个 info.php
页面,并用 galaxy cp
复制到了线上的 public
使用 curl
或者 Chrome
浏览器就可以访问了。
如果我们不想提交 git
或者重新构建镜像,而是直接在线上某个实例 Pod
中调试,就可以使用 galaxy cp
将文件直接复制到线上。
galaxy cp
和exec
可能会存在一定的风险,因此需要项目组管理员权限才可以完成,项目组的普通成员无法执行此操作