diff options
Diffstat (limited to 'internal/pkg')
| -rw-r--r-- | internal/pkg/exec.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/internal/pkg/exec.go b/internal/pkg/exec.go index c12c9097..29753952 100644 --- a/internal/pkg/exec.go +++ b/internal/pkg/exec.go @@ -7,6 +7,7 @@ import ( "os" "runtime" "slices" + "strconv" "syscall" "time" @@ -325,7 +326,18 @@ func (a *execArtifact) cure(c *CureContext, hostNet bool) (err error) { } if a.paths[i].W { - z.OverlayEphemeral(b.dst, b.src...) + tempUpper, tempWork := temp.Append( + ".upper", strconv.Itoa(i), + ), temp.Append( + ".work", strconv.Itoa(i), + ) + if err = os.MkdirAll(tempUpper.String(), 0700); err != nil { + return + } + if err = os.MkdirAll(tempWork.String(), 0700); err != nil { + return + } + z.Overlay(b.dst, tempUpper, tempWork, b.src...) } else if len(b.src) == 1 { z.Bind(b.src[0], b.dst, 0) } else { |
