未验证 提交 358c9c55 编写于 作者: M Medya Ghazizadeh 提交者: GitHub

Merge pull request #10042 from spowelljr/snapFix

Fix docker driver cert copy on ubuntu's snap package manager
......@@ -24,6 +24,7 @@ import (
"os"
"os/exec"
"path"
"path/filepath"
"runtime"
"strconv"
"strings"
......@@ -185,7 +186,18 @@ func (k *kicRunner) Copy(f assets.CopyableFile) error {
}
}
klog.Infof("%s (temp): %s --> %s (%d bytes)", k.ociBin, src, dst, f.GetLength())
tf, err := ioutil.TempFile("", "tmpf-memory-asset")
tmpFolder := ""
// Snap only allows an application to see its own files in /tmp, making Docker unable to copy memory assets
// https://github.com/kubernetes/minikube/issues/10020
if isSnapBinary() {
home, err := os.UserHomeDir()
if err != nil {
return errors.Wrap(err, "detecting home dir")
}
tmpFolder = os.Getenv(home)
}
tf, err := ioutil.TempFile(tmpFolder, "tmpf-memory-asset")
if err != nil {
return errors.Wrap(err, "creating temporary file")
}
......@@ -197,6 +209,15 @@ func (k *kicRunner) Copy(f assets.CopyableFile) error {
return k.copy(tf.Name(), dst)
}
func isSnapBinary() bool {
ex, err := os.Executable()
if err != nil {
return false
}
exPath := filepath.Dir(ex)
return strings.Contains(exPath, "snap")
}
func (k *kicRunner) copy(src string, dst string) error {
fullDest := fmt.Sprintf("%s:%s", k.nameOrID, dst)
if k.ociBin == oci.Podman {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册