Build Docker Image From Go Code

后端 未结 6 1657
鱼传尺愫
鱼传尺愫 2020-12-03 15:29

I\'m trying to build a Docker image using the Docker API and Docker Go libraries (https://github.com/docker/engine-api/). Code example:

package main
import (         


        
6条回答
  •  孤城傲影
    2020-12-03 15:53

    I encounter same problem. Finally find out the tar file should be docker build context even with Dockerfile.

    Here is my code,

    package main
    
    import (
        "log"
        "os"
    
        "github.com/docker/docker/api/types"
        "github.com/docker/docker/client"
        "golang.org/x/net/context"
    )
    
    func main() {
        dockerBuildContext, err := os.Open("/Users/elsvent/workspace/Go/src/test/test.tar")
        defer dockerBuildContext.Close()
    
        buildOptions := types.ImageBuildOptions{
            SuppressOutput: true,
            PullParent:     true,
            Tags:           []string{"xxx"},
            Dockerfile:     "test/Dockerfile",
        }
        defaultHeaders := map[string]string{"Content-Type": "application/tar"}
        cli, _ := client.NewClient("unix:///var/run/docker.sock", "v1.24", nil, defaultHeaders)
        buildResp, err := cli.ImageBuild(context.Background(), dockerBuildContext, buildOptions)
        if err != nil {
        log.Fatal(err)
        }
        defer buildResp.Body.Close()
    }
    

提交回复
热议问题