mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
commitaf0cdc36c7marked these fields as deprecated and to be removed in API v1.47 (which was targeted for v28.0). We shipped v1.47 with the v27.2 release, but did not yet remove the erroneous fields, so the version to deprecate was updated to v1.48 through3df03d8e66This patch removes fields that are not part of the image by replacing the type with the Config struct from the docker image-spec. curl -s --unix-socket /var/run/docker.sock http://localhost/v1.50/images/alpine/json | jq .Config { "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh" ] } curl -s --unix-socket /var/run/docker.sock http://localhost/v1.49/images/alpine/json | jq .Config { "Hostname": "", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh" ], "Image": "", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": null } Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
79 lines
4.0 KiB
Bash
79 lines
4.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
source hack/make/.integration-test-helpers
|
|
|
|
# The commit or tag to use for testing
|
|
# TODO(thaJeztah): remove VERSION build-arg once https://github.com/docker/docker-py/pull/3267 is merged and released.
|
|
: "${DOCKER_PY_COMMIT:=7.1.0}"
|
|
|
|
# custom options to pass py.test
|
|
#
|
|
# This option can be used to temporarily skip flaky tests (using the `--deselect`
|
|
# flag) until they are fixed upstream. For example:
|
|
# --deselect=tests/integration/api_container_test.py::AttachContainerTest::test_attach_no_stream
|
|
# TODO re-enable test_attach_no_stream after https://github.com/docker/docker-py/issues/2513 is resolved
|
|
# TODO re-enable test_run_container_reading_socket_ws. It's reported in https://github.com/docker/docker-py/issues/1478, and we're getting that error in our tests.
|
|
# TODO re-enable test_run_with_networking_config once this issue is fixed: https://github.com/moby/moby/pull/46853#issuecomment-1864679942.
|
|
: "${PY_TEST_OPTIONS:=--junitxml=${DEST}/junit-report.xml --deselect=tests/integration/api_container_test.py::AttachContainerTest::test_attach_no_stream --deselect=tests/integration/api_container_test.py::AttachContainerTest::test_run_container_reading_socket_ws --deselect=tests/integration/models_containers_test.py::ContainerCollectionTest::test_run_with_networking_config}"
|
|
|
|
# build --squash is not supported with containerd integration.
|
|
if [ -n "$TEST_INTEGRATION_USE_SNAPSHOTTER" ]; then
|
|
PY_TEST_OPTIONS="$PY_TEST_OPTIONS --deselect=tests/integration/api_build_test.py::BuildTest::test_build_squash"
|
|
fi
|
|
|
|
# TODO(thaJeztah) re-enable after https://github.com/docker/docker-py/pull/3336 is in the DOCKER_PY_COMMIT release.
|
|
PY_TEST_OPTIONS="$PY_TEST_OPTIONS --deselect=tests/integration/api_build_test.py::BuildTest::test_build_container_with_target"
|
|
|
|
# TODO(vvoland): re-enable after https://github.com/docker/docker-py/pull/3203 is included in the DOCKER_PY_COMMIT release.
|
|
PY_TEST_OPTIONS="$PY_TEST_OPTIONS --deselect=tests/integration/api_image_test.py::CommitTest::test_commit"
|
|
PY_TEST_OPTIONS="$PY_TEST_OPTIONS --deselect=tests/integration/api_image_test.py::CommitTest::test_commit_with_changes"
|
|
|
|
# TODO(laurazard): re-enable after https://github.com/docker/docker-py/pull/3290 is included in the DOCKER_PY_COMMIT release.
|
|
PY_TEST_OPTIONS="$PY_TEST_OPTIONS --deselect=tests/integration/models_containers_test.py::ContainerTest::test_exec_run_failed"
|
|
(
|
|
bundle .integration-daemon-start
|
|
|
|
docker_host_scheme=$(echo "${DOCKER_HOST}" | cut -d: -f1 -)
|
|
|
|
case "${docker_host_scheme}" in
|
|
unix)
|
|
# trim the tcp:// scheme, and bind-mount the docker socket into the container
|
|
run_opts="--mount type=bind,src=${DOCKER_HOST#unix://},dst=/var/run/docker.sock"
|
|
;;
|
|
|
|
tcp)
|
|
# run container in host-mode networking so that it can connect to the
|
|
# daemon from the current networking namespace (e.g., to connect to localhost)
|
|
run_opts="--network=host -e DOCKER_HOST=${DOCKER_HOST}"
|
|
;;
|
|
|
|
*)
|
|
echo "WARN: Skipping test-docker-py: connecting to docker daemon using ${docker_host_scheme} (${DOCKER_HOST}) not supported"
|
|
bundle .integration-daemon-stop
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
docker_py_image="docker-sdk-python3:${DOCKER_PY_COMMIT}"
|
|
if ! docker image inspect "dockerPyImage" &> /dev/null; then
|
|
echo INFO: Building ${docker_py_image}...
|
|
(
|
|
[ -n "${TESTDEBUG}" ] && set -x
|
|
[ -z "${TESTDEBUG}" ] && build_opts="--quiet"
|
|
[ -f /.dockerenv ] || build_opts="${build_opts} --network=host"
|
|
# TODO(thaJeztah): remove VERSION build-arg once https://github.com/docker/docker-py/pull/3267 is merged and released.
|
|
# shellcheck disable=SC2086
|
|
exec docker build ${build_opts} -t "${docker_py_image}" --build-arg VERSION="${DOCKER_PY_COMMIT}" -f tests/Dockerfile "https://github.com/docker/docker-py.git#${DOCKER_PY_COMMIT}"
|
|
)
|
|
fi
|
|
|
|
echo INFO: Starting docker-py tests...
|
|
(
|
|
[ -n "${TESTDEBUG}" ] && set -x
|
|
# shellcheck disable=SC2086,SC2140
|
|
exec docker run --rm ${run_opts} --mount type=bind,"src=${ABS_DEST}","dst=/src/${DEST}" "${docker_py_image}" pytest ${PY_TEST_OPTIONS} tests/integration
|
|
)
|
|
bundle .integration-daemon-stop
|
|
) &> >(tee -a "$DEST/test.log")
|