golang构建docker镜像的几种方式

目前docker支持以下几种方式指定上下文来构建镜像

  • 本地项目路径
  • 本地压缩包路径
  • docekrfile文本链接
  • 压缩包文件链接
  • git仓库链接

在此记录下golang中使用git仓库链接构建方法

import (
	"context"
	"github.com/docker/docker/api/types"
	"github.com/docker/docker/client"
)

func main() {
	cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
	if err != nil {
		panic(err)
	}
	
	// 公开git项目地址
	gitUrl := "https://jihulab.com/keex/go-test-api.git#main"
	
	// 私有git项目地址,需要申请Token
	// gitUrl := "https://[USER]:[TOKEN]@github.com/[GROUP]/[PROJECT_NAME].git#[BRANCH]"

    // 开始构建
	resp, err := cli.ImageBuild(context.TODO(), nil, types.ImageBuildOptions{RemoteContext: gitUrl})
	if err != nil {
		panic(err)
	}
}

参考 https://docs.docker.com/build/building/context/#what-is-a-build-context

你可能感兴趣的:(golang,docker,开发语言)