我正在尝试使用 Go docker API 获取挂载的文件内容:
文件secret.txt
存储一行TOKEN=MY_TOKEN
代码:
cli, err := client.NewEnvClient()
if err != nil {
panic(err)
}
defer cli.Close()
ctx := context.Background()
_, err = cli.ImagePull(ctx, "alpine", types.ImagePullOptions{})
if err != nil {
panic(err)
}
containerConfig := &container.Config{
Image: "alpine",
Cmd: []string{"echo", "hello world"},
}
// mounted file
h := container.HostConfig{
Binds: []string{"/etc/secret.txt"},
}
resp, err := cli.ContainerCreate(ctx, containerConfig, &h, nil, "")
if err != nil {
panic(err)
}
rc, _, err := cli.CopyFromContainer(context.Background(), resp.ID, "/etc/secret.txt")
if err != nil {
fmt.Println(err.Error())
}
b, err := ioutil.ReadAll(rc)
if err != nil {
fmt.Println(err.Error())
}
rc.Close()
fmt.Println(string(b), " len=", len(string(b)))
我正在获取secret.txt
包含其他信息的文件:
secret.txt/0040755000000000000000000000000013204637420011354 5ustar0000000000000000 len= 153
如何从文本文件中获取实际数据?谢谢