using podman on Fedora — root not required anymore

This commit is contained in:
Adam Samalik 2018-11-16 21:11:39 +01:00
parent e784027cf8
commit b840bb15aa
3 changed files with 45 additions and 15 deletions

View file

@ -25,7 +25,7 @@ This repo includes scripts to build and preview the contents of this repository.
**NOTE**: Please note that if you reference pages from other repositoreis, such links will be broken in this local preview as it only builds this repository. If you want to rebuild the whole Fedora Docs site, please see [the Fedora Docs build repository](https://pagure.io/fedora-docs/docs-fp-o/) for instructions.
Both scripts use docker, so please make sure you have it installed on your system. Please see below for instructions.
Both scripts work on Fedora (using Podman) and macOS (using Docker).
To build and preview the site, run:
@ -35,9 +35,10 @@ $ ./build.sh && ./preview.sh
The result will be available at http://localhost:8080
### Installing docker on Fedora
### Installing Podman on Fedora
Fedora Workstation doesn't come with Podman preinstalled by default — so you might need to install it using the following command:
```
$ sudo dnf install docker
$ sudo systemctl start docker && sudo systemctl enable docker
$ sudo dnf install podman
```

View file

@ -1,16 +1,46 @@
#!/bin/sh
image="docker.io/antora/antora"
cmd="--html-url-extension-style=indexify site.yml"
if [ "$(uname)" == "Darwin" ]; then
# Running on macOS.
# Let's assume that the user has the Docker CE installed
# which doesn't require a root password.
docker run --rm -it -v $(pwd):/antora antora/antora --html-url-extension-style=indexify site.yml
echo ""
echo "This build script is using Docker container runtime to run the build in an isolated environment."
echo ""
docker run --rm -it -v $(pwd):/antora $image $cmd
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.
echo ""
echo "This build script is using Docker to run the build in an isolated environment. You might be asked for a root password in order to start it."
sudo docker run --rm -it -v $(pwd):/antora:z antora/antora --html-url-extension-style=indexify site.yml
if [ -f /usr/bin/podman ]; then
echo ""
echo "This build script is using Podman to run the build in an isolated environment."
echo ""
podman run --rm -it -v $(pwd):/antora:z $image $cmd
elif [ -f /usr/bin/docker ]; then
echo ""
echo "This build script is using Docker to run the build in an isolated environment."
echo ""
if groups | grep -wq "docker"; then
docker run --rm -it -v $(pwd):/antora:z $image $cmd
else
echo ""
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
fi
else
echo ""
echo "Error: Container runtime haven't been found on your system. Fix it by:"
echo "$ sudo dnf install podman"
exit 1
fi
fi

View file

@ -5,14 +5,13 @@ if [ "$(uname)" == "Darwin" ]; then
# Let's assume that the user has the Docker CE installed
# which doesn't require a root password.
echo "The preview will be available at http://localhost:8080/"
docker run --rm -v $(pwd)/public:/usr/share/nginx/html:ro -p 8080:80 nginx
docker run --rm -v $(pwd):/antora:ro -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro -p 8080:80 nginx
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
# Running on Linux.
# Let's assume that it's running the Docker deamon
# which requires root.
# Fedora Workstation has python3 installed as a default, so using that
echo ""
echo "This build script is using Docker to run the build in an isolated environment. You might be asked for a root password in order to start it."
echo "The preview will be available at http://localhost:8080/"
sudo docker run --rm -v $(pwd)/public:/usr/share/nginx/html:ro -p 8080:80 nginx
echo "The preview is available at http://localhost:8080"
echo ""
python3 -m http.server --directory ./public 8080
fi