More information for podman --remote build and running out of space.

Users do not realize that the entire context directory is being copied
into the podman machine when doing a podman --remote build.

Adding information about the context directory might help them
understand this.

Improves: https://github.com/containers/podman/issues/23287

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh 2024-07-18 06:37:17 -04:00
parent 139e1791a5
commit 174190132c
No known key found for this signature in database
GPG Key ID: A2DF901DABE2C028
1 changed files with 10 additions and 2 deletions

View File

@ -11,6 +11,7 @@ import (
"path/filepath"
"strconv"
"strings"
"syscall"
"time"
"github.com/containers/buildah"
@ -33,6 +34,13 @@ import (
"github.com/sirupsen/logrus"
)
func genSpaceErr(err error) error {
if errors.Is(err, syscall.ENOSPC) {
return fmt.Errorf("context directory may be too large: %w", err)
}
return err
}
func BuildImage(w http.ResponseWriter, r *http.Request) {
if hdr, found := r.Header["Content-Type"]; found && len(hdr) > 0 {
contentType := hdr[0]
@ -73,7 +81,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
contextDirectory, err := extractTarFile(anchorDir, r)
if err != nil {
utils.InternalServerError(w, err)
utils.InternalServerError(w, genSpaceErr(err))
return
}
@ -202,7 +210,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
}
tempDir, subDir, err := buildahDefine.TempDirForURL(anchorDir, "buildah", query.Remote)
if err != nil {
utils.InternalServerError(w, err)
utils.InternalServerError(w, genSpaceErr(err))
return
}
if tempDir != "" {