run.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. set -eo pipefail
  3. dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
  4. image="$1"
  5. cname="docker-daemon-container-$RANDOM-$RANDOM"
  6. cid="$(
  7. docker run -d -it \
  8. --privileged \
  9. --name "$cname" \
  10. -e DOCKER_TLS_CERTDIR=/certs -v /certs \
  11. "$image"
  12. )"
  13. trap "docker rm -vf $cid > /dev/null" EXIT
  14. docker_() {
  15. docker run --rm -i \
  16. --link "$cname":docker \
  17. -e DOCKER_TLS_CERTDIR=/certs --volumes-from "$cname:ro" \
  18. --entrypoint docker-entrypoint.sh \
  19. "$image" \
  20. "$@"
  21. }
  22. . "$dir/../../retry.sh" --tries 30 'docker_ version'
  23. [ "$(docker_ images -q | wc -l)" = '0' ]
  24. docker_ pull busybox
  25. [ "$(docker_ images -q | wc -l)" = '1' ]
  26. [ "$(docker_ ps -aq | wc -l)" = '0' ]
  27. docker_ run --rm busybox true
  28. docker_ run --rm busybox true
  29. docker_ run --rm busybox true
  30. [ "$(docker_ ps -aq | wc -l)" = '0' ]
  31. docker_ create -i --name test1 busybox cat
  32. [ "$(docker_ ps -aq | wc -l)" = '1' ]
  33. [ "$(docker_ inspect -f '{{.State.Running}}' test1)" = 'false' ]
  34. docker_ start test1
  35. [ "$(docker_ inspect -f '{{.State.Running}}' test1)" = 'true' ]
  36. docker_ stop test1
  37. [ "$(docker_ inspect -f '{{.State.Running}}' test1)" = 'false' ]
  38. docker_ rm test1
  39. [ "$(docker_ ps -aq | wc -l)" = '0' ]