Merge pull request #20476 from rhatdan/build

podman build --remote URI Dockerfile should not be treated as file
This commit is contained in:
openshift-ci[bot]
2023-10-31 07:49:59 +00:00
committed by GitHub
3 changed files with 18 additions and 1 deletions

View File

@ -224,8 +224,14 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
// it's not json, assume just a string
m = []string{query.Dockerfile}
}
for _, containerfile := range m {
containerFiles = append(containerFiles, filepath.Join(contextDirectory, filepath.Clean(filepath.FromSlash(containerfile))))
// Add path to containerfile iff it is not URL
if !(strings.HasPrefix(containerfile, "http://") || strings.HasPrefix(containerfile, "https://")) {
containerfile = filepath.Join(contextDirectory,
filepath.Clean(filepath.FromSlash(containerfile)))
}
containerFiles = append(containerFiles, containerfile)
}
dockerFileSet = true
}

View File

@ -431,6 +431,11 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
dontexcludes := []string{"!Dockerfile", "!Containerfile", "!.dockerignore", "!.containerignore"}
for _, c := range containerFiles {
// Don not add path to containerfile if it is a URL
if strings.HasPrefix(c, "http://") || strings.HasPrefix(c, "https://") {
newContainerFiles = append(newContainerFiles, c)
continue
}
if c == "/dev/stdin" {
content, err := io.ReadAll(os.Stdin)
if err != nil {

View File

@ -1135,6 +1135,12 @@ EOF
run_podman rmi -f build_test
}
@test "podman build --file=https" {
run_podman build -t build_test --file=https://raw.githubusercontent.com/containers/podman/main/test/build/from-scratch/Dockerfile $PODMAN_TMPDIR
run_podman rmi -f build_test
}
function teardown() {
# A timeout or other error in 'build' can leave behind stale images
# that podman can't even see and which will cascade into subsequent