Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "context"
  5. "os"
  6.  
  7. "github.com/docker/docker/api/types"
  8. "github.com/docker/docker/api/types/container"
  9. "github.com/docker/docker/client"
  10. "github.com/docker/docker/pkg/stdcopy"
  11. )
  12.  
  13. func main() {
  14. ctx := context.Background()
  15. cli, err := client.NewClientWithOpts(client.FromEnv)
  16. if err != nil {
  17. panic(err)
  18. }
  19. cli.NegotiateAPIVersion(ctx)
  20.  
  21. resp, err := cli.ContainerCreate(ctx, &container.Config{
  22. Image: "go-multi-stage",
  23. }, nil, nil, "")
  24. if err != nil {
  25. panic(err)
  26. }
  27.  
  28. if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {
  29. panic(err)
  30. }
  31.  
  32. statusCh, errCh := cli.ContainerWait(ctx, resp.ID, container.WaitConditionNotRunning)
  33. select {
  34. case err := <-errCh:
  35. if err != nil {
  36. panic(err)
  37. }
  38. case <-statusCh:
  39. }
  40.  
  41. out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true})
  42. if err != nil {
  43. panic(err)
  44. }
  45.  
  46. stdcopy.StdCopy(os.Stdout, os.Stderr, out)
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement