跳到主要内容

微搭私有部署云托管入门指南

本文档将指导您从零开始创建一个 Go 容器化应用,并将其部署到微搭私有部署环境的云托管服务中。

前提条件

在开始之前,请确保满足以下条件:

环境要求
  1. 微搭环境:已开通企业版套餐,并完成微搭低代码私有部署集群版本的部署
  2. 镜像仓库:准备与云托管网络互通的容器镜像服务器(用于存储构建的镜像)
  3. 资源配置:确保环境有足够的资源支持容器化服务的运行
  4. 开发环境:本地已安装 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 --from=builder /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 进入部署界面

  1. 登录微搭低代码私有部署集群版本管理后台
  2. 选择 云托管通过容器镜像部署
  3. 按照界面提示完成部署配置

5.2 配置部署参数

在部署界面中,需要配置以下关键参数:

  • 镜像地址:填入上一步推送的镜像完整地址
  • 端口配置:设置容器端口为 8089
  • 资源配置:根据实际需求配置 CPU 和内存
  • 环境变量:如有需要可添加环境变量
注意事项

请确保镜像仓库与微搭云托管环境的网络连通性,以及有足够的资源支持服务运行。

步骤 6:通过 APIs 连接器调用服务

6.1 获取服务访问地址

服务部署完成后,系统会为您的服务分配一个内部访问地址,格式通常为:

http://<服务名>-private:8089

例如:http://helloworld-private:8089

6.2 配置 APIs 连接器

  1. 登录微搭低代码平台
  2. 进入 扩展能力资源链接APIs 连接器
  3. 选择 自定义 APIsHTTP 请求
  4. 配置接口信息:
    • 请求方法:POST
    • URLhttp://helloworld-private:8089/api/post
    • 请求头Content-Type: application/json

6.3 测试接口调用

配置完成后,您可以在 APIs 连接器中测试接口调用,验证服务是否正常工作。

APIs连接器配置示例

接口测试结果

总结

通过以上步骤,您已经成功:

  1. ✅ 创建了一个 Go Web 应用
  2. ✅ 将应用容器化并构建镜像
  3. ✅ 上传镜像到容器镜像仓库
  4. ✅ 部署到微搭云托管服务
  5. ✅ 通过 APIs 连接器调用服务

现在您可以在微搭低代码平台中使用这个自定义的后端服务,为您的应用提供更强大的功能支持。

扩展建议
  • 可以添加数据库连接、日志记录等功能
  • 建议配置健康检查接口
  • 可以根据业务需求添加更多 API 接口
  • 考虑添加监控和告警机制