Skip to content

Commit

Permalink
Merge pull request #10661 from mwhahaha/issue-10660
Browse files Browse the repository at this point in the history
Fall back to string for dockerfile parameter
  • Loading branch information
openshift-merge-robot authored Jun 12, 2021
2 parents d1cb5d1 + ded2f00 commit c955c95
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
4 changes: 2 additions & 2 deletions pkg/api/handlers/compat/images_build.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,8 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
if _, found := r.URL.Query()["dockerfile"]; found {
var m = []string{}
if err := json.Unmarshal([]byte(query.Dockerfile), &m); err != nil {
utils.BadRequest(w, "dockerfile", query.Dockerfile, err)
return
// it's not json, assume just a string
m = append(m, query.Dockerfile)
}
containerFiles = m
} else {
Expand Down
35 changes: 35 additions & 0 deletions test/apiv2/10-images.at
Original file line number Diff line number Diff line change
Expand Up @@ -147,4 +147,39 @@ t GET "images/get?names=alpine&names=busybox" 200 '[POSIX tar archive]'
img_cnt=$(tar xf "$WORKDIR/curl.result.out" manifest.json -O | jq "length")
is "$img_cnt" 2 "number of images in tar archive"

# check build works when uploading container file as a tar, see issue #10660
TMPD=$(mktemp -d podman-apiv2-test.build.XXXXXXXX)
function cleanBuildTest() {
podman rmi -a -f
rm -rf "${TMPD}" &> /dev/null
}
CONTAINERFILE_TAR="${TMPD}/containerfile.tar"
cat > $TMPD/containerfile << EOF
FROM quay.io/libpod/alpine_labels:latest
EOF
tar --format=posix -C $TMPD -cvf ${CONTAINERFILE_TAR} containerfile &> /dev/null

curl -XPOST --data-binary @<(cat $CONTAINERFILE_TAR) \
-H "content-type: application/x-tar" \
--dump-header "${TMPD}/headers.txt" \
-o "${TMPD}/response.txt" \
"http://$HOST:$PORT/v1.40/libpod/build?dockerfile=containerfile" &> /dev/null

BUILD_TEST_ERROR=""

if ! grep -q '200 OK' "${TMPD}/headers.txt"; then
echo -e "${red}NOK: Image build from tar failed response was not 200 OK"
BUILD_TEST_ERROR="1"
fi

if ! grep -q 'quay.io/libpod/alpine_labels' "${TMPD}/response.txt"; then
echo -e "${red}NOK: Image build from tar failed image name not in response"
BUILD_TEST_ERROR="1"
fi

cleanBuildTest
if [[ "${BUILD_TEST_ERROR}" ]]; then
exit 1
fi

# vim: filetype=sh

0 comments on commit c955c95

Please sign in to comment.