mirror of
https://github.com/ceph/ceph
synced 2025-03-22 10:17:23 +00:00
tests: Use podman if available
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
This commit is contained in:
parent
8a84ddeaa8
commit
a1e8f61cb7
@ -25,15 +25,16 @@ function setup_container() {
|
||||
local os_type=$1
|
||||
local os_version=$2
|
||||
local opts="$3"
|
||||
local dockercmd=$4
|
||||
|
||||
local image=$(get_image_name $os_type $os_version)
|
||||
local build=true
|
||||
if docker images $image | grep --quiet "^$image " ; then
|
||||
eval touch --date=$(docker inspect $image | jq '.[0].Created') $image
|
||||
if $dockercmd images $image | grep --quiet "^$image " ; then
|
||||
eval touch --date=$($dockercmd inspect $image | jq '.[0].Created') $image
|
||||
found=$(find -L test/$os_type-$os_version/* -newer $image)
|
||||
rm $image
|
||||
if test -n "$found" ; then
|
||||
docker rmi $image
|
||||
$dockercmd rmi $image
|
||||
else
|
||||
build=false
|
||||
fi
|
||||
@ -48,7 +49,7 @@ function setup_container() {
|
||||
os_version=$os_version user_id=$(id -u) \
|
||||
perl -p -e 's/%%(\w+)%%/$ENV{$1}/g' \
|
||||
dockerfile/Dockerfile.in > dockerfile/Dockerfile
|
||||
docker $opts build --tag=$image dockerfile
|
||||
$dockercmd $opts build --tag=$image dockerfile
|
||||
rm -fr dockerfile
|
||||
fi
|
||||
}
|
||||
@ -110,9 +111,11 @@ function run_in_docker() {
|
||||
local opts="$1"
|
||||
shift
|
||||
local script=$1
|
||||
shift
|
||||
local dockercmd=$1
|
||||
|
||||
setup_downstream $os_type $os_version $ref || return 1
|
||||
setup_container $os_type $os_version "$opts" || return 1
|
||||
setup_container $os_type $os_version "$opts" $dockercmd || return 1
|
||||
local downstream=$(get_downstream $os_type $os_version)
|
||||
local image=$(get_image_name $os_type $os_version)
|
||||
local upstream=$(get_upstream)
|
||||
@ -120,7 +123,7 @@ function run_in_docker() {
|
||||
mkdir -p $HOME/.ccache
|
||||
ccache="--volume $HOME/.ccache:$HOME/.ccache"
|
||||
user="--user $USER"
|
||||
local cmd="docker run $opts --rm --name $image --privileged $ccache"
|
||||
local cmd="$dockercmd run $opts --rm --name $image --privileged $ccache"
|
||||
cmd+=" --volume $downstream:$downstream"
|
||||
cmd+=" --volume $upstream:$upstream"
|
||||
local status=0
|
||||
@ -137,15 +140,17 @@ function run_in_docker() {
|
||||
function remove_all() {
|
||||
local os_type=$1
|
||||
local os_version=$2
|
||||
local dockercmd=$3
|
||||
local image=$(get_image_name $os_type $os_version)
|
||||
|
||||
docker rm $image
|
||||
docker rmi $image
|
||||
$dockercmd rm $image
|
||||
$dockercmd rmi $image
|
||||
}
|
||||
|
||||
function usage() {
|
||||
cat <<EOF
|
||||
Run commands within Ceph sources, in a docker container
|
||||
Run commands within Ceph sources, in a container. Use podman if available,
|
||||
docker if not.
|
||||
$0 [options] command args ...
|
||||
|
||||
[-h|--help] display usage
|
||||
@ -237,7 +242,12 @@ EOF
|
||||
}
|
||||
|
||||
function main_docker() {
|
||||
if ! docker ps > /dev/null 2>&1 ; then
|
||||
local dockercmd="docker"
|
||||
if type podman > /dev/null; then
|
||||
dockercmd="podman"
|
||||
fi
|
||||
|
||||
if ! $dockercmd ps > /dev/null 2>&1 ; then
|
||||
echo "docker not available: $0"
|
||||
return 0
|
||||
fi
|
||||
@ -315,11 +325,11 @@ function main_docker() {
|
||||
for os_type in ${!os_type2versions[@]} ; do
|
||||
for os_version in ${os_type2versions[$os_type]} ; do
|
||||
if $remove ; then
|
||||
remove_all $os_type $os_version || return 1
|
||||
remove_all $os_type $os_version $dockercmd || return 1
|
||||
elif $shell ; then
|
||||
run_in_docker $os_type $os_version $ref "$opts" SHELL || return 1
|
||||
run_in_docker $os_type $os_version $ref "$opts" SHELL $dockercmd || return 1
|
||||
else
|
||||
run_in_docker $os_type $os_version $ref "$opts" "$@" || return 1
|
||||
run_in_docker $os_type $os_version $ref "$opts" "$@" $dockercmd || return 1
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user