From 336780e6cc1f2d7a70adea8c5801c3bcfe4aa62a Mon Sep 17 00:00:00 2001 From: Elliot Chen <92676541+elliotchenzichang@users.noreply.github.com> Date: Sat, 3 Aug 2024 20:07:57 +0800 Subject: [PATCH 1/2] update the demo code I ran a demo following the code marked in the file, but found that the types.StartOptions has been deprecated, so help to update the demo code. --- content/engine/api/sdk/_index.md | 84 ++++++++++++++++---------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/content/engine/api/sdk/_index.md b/content/engine/api/sdk/_index.md index 9a404cd87c58..cca949b8c1a2 100644 --- a/content/engine/api/sdk/_index.md +++ b/content/engine/api/sdk/_index.md @@ -81,54 +81,54 @@ import ( "io" "os" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/image" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/client" "github.com/docker/docker/pkg/stdcopy" ) func main() { - ctx := context.Background() - cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) - if err != nil { - panic(err) - } - defer cli.Close() - - reader, err := cli.ImagePull(ctx, "docker.io/library/alpine", image.PullOptions{}) - if err != nil { - panic(err) - } - io.Copy(os.Stdout, reader) - - resp, err := cli.ContainerCreate(ctx, &container.Config{ - Image: "alpine", - Cmd: []string{"echo", "hello world"}, - }, nil, nil, nil, "") - if err != nil { - panic(err) - } - - if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { - panic(err) - } - - statusCh, errCh := cli.ContainerWait(ctx, resp.ID, container.WaitConditionNotRunning) - select { - case err := <-errCh: - if err != nil { - panic(err) - } - case <-statusCh: - } - - out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true}) - if err != nil { - panic(err) - } - - stdcopy.StdCopy(os.Stdout, os.Stderr, out) + ctx := context.Background() + cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) + if err != nil { + panic(err) + } + + reader, err := cli.ImagePull(ctx, "docker.io/library/alpine", image.PullOptions{}) + if err != nil { + panic(err) + } + + io.Copy(os.Stdout, reader) + + resp, err := cli.ContainerCreate(ctx, &container.Config{ + Image: "alpine", + Cmd: []string{"echo", "Hello World"}, + }, nil, nil, nil, "") + + if err != nil { + panic(err) + } + + if err := cli.ContainerStart(ctx, resp.ID, container.StartOptions{}); err != nil { + panic(err) + } + + statusCh, errCh := cli.ContainerWait(ctx, resp.ID, container.WaitConditionNotRunning) + select { + case err := <-errCh: + if err != nil { + panic(err) + } + case <-statusCh: + } + + out, err := cli.ContainerLogs(ctx, resp.ID, container.LogsOptions{ShowStdout: true}) + if err != nil { + panic(err) + } + + stdcopy.StdCopy(os.Stdout, os.Stderr, out) } ``` From 900425bfc9c03c95cb78d34e32e33b7fd0c6b7ef Mon Sep 17 00:00:00 2001 From: Elliot Chen <92676541+elliotchenzichang@users.noreply.github.com> Date: Thu, 8 Aug 2024 11:00:32 +0800 Subject: [PATCH 2/2] add the defer function to add the defer logic again --- content/engine/api/sdk/_index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/engine/api/sdk/_index.md b/content/engine/api/sdk/_index.md index cca949b8c1a2..b94065e5254f 100644 --- a/content/engine/api/sdk/_index.md +++ b/content/engine/api/sdk/_index.md @@ -93,6 +93,7 @@ func main() { if err != nil { panic(err) } + defer cli.Close() reader, err := cli.ImagePull(ctx, "docker.io/library/alpine", image.PullOptions{}) if err != nil {