using podman on Fedora — root not required anymore
This commit is contained in:
parent
e784027cf8
commit
b840bb15aa
3 changed files with 45 additions and 15 deletions
|
@ -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
|
||||
```
|
||||
|
|
40
build.sh
40
build.sh
|
@ -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
|
||||
|
|
11
preview.sh
11
preview.sh
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue