mirror of
https://github.com/containers/podman.git
synced 2025-06-20 00:51:16 +08:00
Create podman temp dir on machine start
If the tempdir for the OS does not have a podman/, machine start will fail. An example would be after a reboot. We now create the podman dir if it does not exist. Fixes #10824 [NO TESTS NEEDED] Signed-off-by: baude <baude@baudes-Mac-mini.localdomain> Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
@ -15,9 +15,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/containers/podman/v3/pkg/rootless"
|
||||
|
||||
"github.com/containers/podman/v3/pkg/machine"
|
||||
"github.com/containers/podman/v3/pkg/rootless"
|
||||
"github.com/containers/podman/v3/utils"
|
||||
"github.com/containers/storage/pkg/homedir"
|
||||
"github.com/digitalocean/go-qemu/qmp"
|
||||
@ -248,7 +247,23 @@ func (v *MachineVM) Start(name string, _ machine.StartOptions) error {
|
||||
if err := v.startHostNetworking(); err != nil {
|
||||
return errors.Errorf("unable to start host networking: %q", err)
|
||||
}
|
||||
|
||||
rtPath, err := getRuntimeDir()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// If the temporary podman dir is not created, create it
|
||||
podmanTempDir := filepath.Join(rtPath, "podman")
|
||||
if _, err := os.Stat(podmanTempDir); os.IsNotExist(err) {
|
||||
if mkdirErr := os.MkdirAll(podmanTempDir, 0755); mkdirErr != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
qemuSocketPath, _, err := v.getSocketandPid()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for i := 0; i < 6; i++ {
|
||||
qemuSocketConn, err = net.Dial("unix", qemuSocketPath)
|
||||
@ -258,9 +273,6 @@ func (v *MachineVM) Start(name string, _ machine.StartOptions) error {
|
||||
time.Sleep(wait)
|
||||
wait++
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fd, err := qemuSocketConn.(*net.UnixConn).File()
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user