微搭私有部署云托管入门指南
本文档将指导您从零开始创建一个 Go 容器化应用,并将其部署到微搭私有部署环境的云托管服务中。
前提条件
在开始之前,请确保满足以下条件:
环境要求
- 微搭环境:已开通企业版套餐,并完成微搭低代码私有部署集群版本的部署
- 镜像仓库:准备与云托管网络互通的容器镜像服务器(用于存储构建的镜像)
- 资源配置:确保环境有足够的资源支持容器化服务的运行
- 开发环境:本地已安装 Golang 和 Docker
步骤 1:创建基础应用
1.1 初始化项目
创建项目目录并进入:
mkdir helloworld
cd helloworld
初始化 Go 模块:
go mod init helloworld
1.2 编写应用代码
在项目根目录创建 main.go 文件,添加以下代码:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/api/post", func(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
handler(w, r)
})
port := "8089"
log.Printf("Server starting on port %s", port)
if err := http.ListenAndServe(":"+port, nil); err != nil {
log.Fatal(err)
}
}
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
fmt.Fprintf(w, "{\"message\": \"Hello WeDa!\"}\n")
}
功能说明
此代码创建了一个基本的 Web 服务器,监听 8089 端口,提供 POST 接口 /api/post。您可以根据需要扩展更多功能,详细信息请参考 Golang Web 开发文档。
步骤 2:应用容器化
2.1 创建 Dockerfile
在项目根目录创建 Dockerfile 文件:
# 使用官方 Golang 镜像作为构建环境
FROM golang:1.21-alpine as builder
# 设置工作目录
WORKDIR /app
# 复制 go.mod 和 go.sum(如果存在)
COPY go.* ./
# 下载依赖
RUN go mod download
# 复制源代码
COPY . .
# 构建二进制文件
RUN CGO_ENABLED=0 GOOS=linux go build -mod=readonly -ldflags="-s -w" -v -o server
# 使用轻量级基础镜像作为运行环境
FROM alpine:latest
# 安装必要的工具和时区数据
RUN apk add --no-cache tzdata ca-certificates && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
apk del tzdata
# 设置工作目录
WORKDIR /app
# 从构建阶段复制二进制文件
COPY /app/server /app/server
# 暴露端口
EXPOSE 8089
# 启动应用
CMD ["/app/server"]
2.2 创建 .dockerignore 文件
创建 .dockerignore 文件以排除不必要的文件:
vendor/
README.md
.gcloudignore
.gitignore
.git/
*.log
步骤 3:本地构建和测试(可选)
如果您的本地环境已安装 Docker,可以先在本地进行构建和测试。
3.1 构建镜像
执行以下命令构建 Docker 镜像:
docker build -t helloworld-go .
3.2 验证构建结果
构建成功后,运行以下命令查看镜像:
docker images
您应该能看到类似以下的输出:
REPOSITORY TAG IMAGE ID CREATED SIZE
helloworld-go latest 6948f1ebee94 8 seconds ago 15MB
3.3 本地运行测试
启动容器进行测试:
docker run -p 8089:8089 helloworld-go
在另一个终端窗口中测试接口:
curl -X POST 'http://127.0.0.1:8089/api/post'
您应该能看到以下响应:
{"message": "Hello WeDa!"}
测试说明
本地测试成功后,您可以将镜像上传到容器镜像仓库,为后续部署做准备。
步骤 4:上传镜像到容器镜像仓库
4.1 标记镜像
为镜像添加仓库标签:
# 标记镜像格式:docker tag <本地镜像名> <仓库地址>/<命名空间>/<镜像名>:<标签>
docker tag helloworld-go my-registry.tencentcloudcr.com/mysoftware/helloworld-go:v0.0.1
参数说明
my-registry.tencentcloudcr.com:容器镜像服务地址(示例)mysoftware:容器命名空间(请替换为您的实际命名空间)helloworld-go:v0.0.1:镜像名称和版本标签
4.2 登录镜像仓库
# 登录容器镜像服务
docker login -u <用户名> -p <密码> my-registry.tencentcloudcr.com
4.3 推送镜像
# 推送镜像到仓库
docker push my-registry.tencentcloudcr.com/mysoftware/helloworld-go:v0.0.1
推送成功后,您可以在容器镜像服务控制台中看到上传的镜像。
步骤 5:部署到微搭云托管
5.1 进入部署界面
- 登录微搭低代码私有部署集群版本管理后台
- 选择 云托管 → 通过容器镜像部署
- 按照界面提示完成部署配置
5.2 配置部署参数
在部署界面中,需要配置以下关键参数:
- 镜像地址:填入上一步推送的镜像完整地址
- 端口配置:设置容器端口为 8089
- 资源配置:根据实际需求配置 CPU 和内存
- 环境变量:如有需要可添加环境变量
注意事项
请确保镜像仓库与微搭云托管环境的网络连通性,以及有足够的资源支持服务运行。
步骤 6:通过 APIs 连接器调用服务
6.1 获取服务访问地址
服务部署完成后,系统会为您的服务分配一个内部访问地址,格式通常为:
http://<服务名>-private:8089
例如:http://helloworld-private:8089
6.2 配置 APIs 连接器
- 登录微搭低代码平台
- 进入 扩展能力 → 资源链接 → APIs 连接器
- 选择 自定义 APIs → HTTP 请求
- 配置接口信息:
- 请求方法:POST
- URL:
http://helloworld-private:8089/api/post - 请求头:
Content-Type: application/json
6.3 测试接口调用
配置完成后,您可以在 APIs 连接器中测试接口调用,验证服务是否正常工作。


总结
通过以上步骤,您已经成功:
- ✅ 创建了一个 Go Web 应用
- ✅ 将应用容器化并构建镜像
- ✅ 上传镜像到容器镜像仓库
- ✅ 部署到微搭云托管服务
- ✅ 通过 APIs 连接器调用服务
现在您可以在微搭低代码平台中使用这个自定义的后端服务,为您的应用提供更强大的功能支持。
扩展建议
- 可以添加数据库连接、日志记录等功能
- 建议配置健康检查接口
- 可以根据业务需求添加更多 API 接口
- 考虑添加监控和告警机制