From b04b09a0cc4dbea3e2b65de035e5d66f76a42ee9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Oct 11 2018 11:46:06 +0000 Subject: Use podman as an option for local build/preview docs The podman binary is an alternative to docker that might be used by some people in preference. In this use case it's a drop in replacement, we can just check for it, else we just use docker as before. Signed-off-by: Peter Robinson --- diff --git a/build.sh b/build.sh index bbfa15e..083da18 100755 --- a/build.sh +++ b/build.sh @@ -11,20 +11,25 @@ if [ "$(uname)" == "Darwin" ]; then elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then # Running on Linux. - # Let's assume that it's running the Docker deamon + # Check whether podman is available, else faill back to docker # which requires root. + if [ -f /usr/bin/podman ]; then + runtime="podman" + else + runtime="docker" + fi if groups | grep -wq "docker"; then # Check if the current user is in the "docker" group. If true, no sudo is needed. echo "" - echo "This build script is using Docker to run the build in an isolated environment." + echo "This build script is using $runtime to run the build in an isolated environment." echo "" - docker run --rm -it -v $(pwd):/antora:z $image $cmd + $runtime run --rm -it -v $(pwd):/antora:z $image $cmd else # User isn't in the docker group; run the command with sudo. echo "" - echo "This build script is using Docker to run the build in an isolated environment. You might be asked for your password." + echo "This build script is using $runtime to run the build in an isolated environment. You might be asked for your password." echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/." echo "" - sudo docker run --rm -it -v $(pwd):/antora:z $image $cmd + sudo $runtime run --rm -it -v $(pwd):/antora:z $image $cmd fi fi diff --git a/preview.sh b/preview.sh index 7f28177..16d02d8 100755 --- a/preview.sh +++ b/preview.sh @@ -9,23 +9,28 @@ if [ "$(uname)" == "Darwin" ]; then elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then # Running on Linux. - # Let's assume that it's running the Docker deamon + # Check whether podman is available, else faill back to docker # which requires root. + if [ -f /usr/bin/podman ]; then + runtime="podman" + else + runtime="docker" + fi if groups | grep -wq "docker"; then # Check if the current user is in the "docker" group. If true, no sudo is needed. echo "" - echo "This build script is using Docker to run the build in an isolated environment." + echo "This build script is using $runtime to run the build in an isolated environment." echo "The preview will be available at http://localhost:8080/" echo "" - docker run --rm -v $(pwd):/antora:ro,z -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro,z -p 8080:80 nginx + $runtime run --rm -v $(pwd):/antora:ro,z -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro,z -p 8080:80 nginx else # User isn't in the docker group; run the command with sudo. echo "" - echo "This build script is using Docker to run the build in an isolated environment. You might be asked for your password." + echo "This build script is using $runtime to run the build in an isolated environment. You might be asked for your password." echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/." echo "" echo "The preview will be available at http://localhost:8080/" echo "" - sudo docker run --rm -v $(pwd):/antora:ro,z -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro,z -p 8080:80 nginx + sudo $runtime run --rm -v $(pwd):/antora:ro,z -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro,z -p 8080:80 nginx fi fi