提交 541fb9cf 编写于 作者: A Anders F Björklund

The podman cp command is not in podman-remote

So use podman exec stdin/stdout as a workaround.
上级 271ca3a7
......@@ -24,7 +24,9 @@ import (
"os"
"os/exec"
"path"
"runtime"
"strconv"
"strings"
"time"
"github.com/golang/glog"
......@@ -202,8 +204,27 @@ func (k *kicRunner) chmod(dst string, perm string) error {
// Podman cp command doesn't match docker and doesn't have -a
func copyToPodman(src string, dest string) error {
if out, err := oci.PrefixCmd(exec.Command(oci.Podman, "cp", src, dest)).CombinedOutput(); err != nil {
return errors.Wrapf(err, "podman copy %s into %s, output: %s", src, dest, string(out))
if runtime.GOOS == "linux" {
cmd := oci.PrefixCmd(exec.Command(oci.Podman, "cp", src, dest))
glog.Infof("Run: %v", cmd)
if out, err := cmd.CombinedOutput(); err != nil {
return errors.Wrapf(err, "podman copy %s into %s, output: %s", src, dest, string(out))
}
} else {
file, err := os.Open(src)
if err != nil {
return err
}
defer file.Close()
parts := strings.Split(dest, ":")
container := parts[0]
path := parts[1]
cmd := exec.Command(oci.Podman, "exec", "-i", container, "tee", path)
cmd.Stdin = file
glog.Infof("Run: %v", cmd)
if err := cmd.Run(); err != nil {
return errors.Wrapf(err, "podman copy %s into %s", src, dest)
}
}
return nil
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册