DockerCpFromContainer copies from a container.
(containerID, srcPath, dstPath string)
| 268 | |
| 269 | // DockerCpFromContainer copies from a container. |
| 270 | func DockerCpFromContainer(containerID, srcPath, dstPath string) error { |
| 271 | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) |
| 272 | x.Check(err) |
| 273 | |
| 274 | tarStream, _, err := cli.CopyFromContainer(context.Background(), containerID, srcPath) |
| 275 | if err != nil { |
| 276 | fmt.Println(err) |
| 277 | return nil |
| 278 | } |
| 279 | tr := tar.NewReader(tarStream) |
| 280 | _, err = tr.Next() |
| 281 | x.Check(err) |
| 282 | |
| 283 | data, err := io.ReadAll(tr) |
| 284 | x.Check(err) |
| 285 | |
| 286 | return os.WriteFile(dstPath, data, 0644) |
| 287 | } |
| 288 | |
| 289 | // DockerExec executes a command inside the given container. |
| 290 | func DockerExec(instance string, cmd ...string) error { |
no test coverage detected