#12 Use podman as an option for local build/preview docs
Merged 5 years ago by asamalik. Opened 5 years ago by pbrobinson.
fedora-docs/ pbrobinson/template fedora-docs-template  into  master

file modified
+10 -5
@@ -11,20 +11,25 @@ 

  

  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

file modified
+10 -5
@@ -9,23 +9,28 @@ 

  

  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

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 pbrobinson@gmail.com

Pull-Request has been merged by asamalik

5 years ago

This is great! Thanks Peter!

I was looking at running it as a non root too, but I had a few issues, once i have that working I'll do another PR to improve this further.

Yeah the build.sh should run as a non-root fine, but the web server exposes a port and podman doesn't* support that as a non-root.

* well at least the last time I've checked

Check with @ignatenkobrain as he uses podman in the FPC docs. He also uses a python based webserver that I think is default installed in Fedora.

Metadata