all 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. # This should be run inside a container built from the Dockerfile
  3. # at the root of the repo - script/test will do it automatically.
  4. set -e
  5. >&2 echo "Running lint checks"
  6. docker run --rm \
  7. --tty \
  8. ${GIT_VOLUME} \
  9. "$TAG" tox -e pre-commit
  10. get_versions="docker run --rm
  11. --entrypoint=/code/.tox/py37/bin/python
  12. $TAG
  13. /code/script/test/versions.py docker/docker-ce,moby/moby"
  14. if [ "$DOCKER_VERSIONS" == "" ]; then
  15. DOCKER_VERSIONS="$($get_versions default)"
  16. elif [ "$DOCKER_VERSIONS" == "all" ]; then
  17. DOCKER_VERSIONS=$($get_versions -n 2 recent)
  18. fi
  19. BUILD_NUMBER=${BUILD_NUMBER-$USER}
  20. PY_TEST_VERSIONS=${PY_TEST_VERSIONS:-py37}
  21. for version in $DOCKER_VERSIONS; do
  22. >&2 echo "Running tests against Docker $version"
  23. daemon_container="compose-dind-$version-$BUILD_NUMBER"
  24. function on_exit() {
  25. if [[ "$?" != "0" ]]; then
  26. docker logs "$daemon_container" 2>&1 | tail -n 100
  27. fi
  28. docker rm -vf "$daemon_container"
  29. }
  30. trap "on_exit" EXIT
  31. docker run \
  32. -d \
  33. --name "$daemon_container" \
  34. --privileged \
  35. --volume="/var/lib/docker" \
  36. -e "DOCKER_TLS_CERTDIR=" \
  37. "docker:$version-dind" \
  38. dockerd -H tcp://0.0.0.0:2375 $DOCKER_DAEMON_ARGS \
  39. 2>&1 | tail -n 10
  40. docker exec "$daemon_container" sh -c "apk add --no-cache git"
  41. # copy docker config from host for authentication with Docker Hub
  42. docker exec "$daemon_container" sh -c "mkdir /root/.docker"
  43. docker cp /root/.docker/config.json $daemon_container:/root/.docker/config.json
  44. docker exec "$daemon_container" sh -c "chmod 644 /root/.docker/config.json"
  45. docker run \
  46. --rm \
  47. --tty \
  48. --link="$daemon_container:docker" \
  49. --env="DOCKER_HOST=tcp://docker:2375" \
  50. --env="DOCKER_VERSION=$version" \
  51. --entrypoint="tox" \
  52. "$TAG" \
  53. -e "$PY_TEST_VERSIONS" -- "$@"
  54. done