github.com/rootless-containers/rootlesskit/v2@v2.3.4/hack/integration-docker.sh (about)

     1  #!/bin/bash
     2  source $(realpath $(dirname $0))/common.inc.sh
     3  
     4  nonloopback="$(hostname -I | awk '{print $1}')"
     5  
     6  docker rm -f nginx >/dev/null 2>&1 || true
     7  
     8  CURL="curl -fsSL"
     9  set -x
    10  
    11  docker run -d --name=nginx -p 8080:80 nginx:alpine
    12  sleep 2
    13  $CURL "http://127.0.0.1:8080"
    14  $CURL "http://${nonloopback}:8080"
    15  docker rm -f nginx
    16  
    17  docker run -d --name=nginx -p 127.0.0.1:8080:80 nginx:alpine
    18  sleep 2
    19  $CURL "http://127.0.0.1:8080"
    20  $CURL "http://${nonloopback}:8080" && ( ERROR "should fail"; exit 1 )
    21  docker rm -f nginx
    22  
    23  # port driver "implicit" does not support binding on a non-loopback address:
    24  # "Error starting userland proxy: listen tcp4 172.18.0.2:8080: bind: cannot assign requested address."
    25  if [ "$DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER" != "implicit" ]; then
    26  	docker run -d --name=nginx -p "${nonloopback}:8080:80" nginx:alpine
    27  	sleep 2
    28  	$CURL "http://127.0.0.1:8080" && ( ERROR "should fail"; exit 1 )
    29  	$CURL "http://${nonloopback}:8080"
    30  	docker rm -f nginx
    31  fi
    32  
    33  INFO "===== PASSING ====="