How to install Taiga in a rootless podman setup (with docker-compose)
Install podman and podman-docker
podman-docker: This package installs a script named docker that emulates the Docker CLI by executes podman commands, it also creates links between all Docker CLI man pages and podman.
sudo dnf install podman podman-docker
Set Rootless podman
Set subuids and subgids for your user: (https://man.archlinux.org/man/podman.1#Rootless_mode)
$ sudo usermod --add-subuids 10000-75535 USERNAME
$ sudo usermod --add-subgids 10000-75535 USERNAME
Make sure that slirp4netns is installed: Currently the slirp4netns package is required to be installed to create a network device, otherwise rootless containers need to run in the network namespace of the host.
You can now check that you can use podman as a regular user
Install docker-compose
(https://docs.docker.com/compose/install/)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Start user podman with systemd
Docker-compose needs a socket to interact with Docker, so we setup the user podman to provide one.
sudo loginctl enable-linger cstaiga # Ensure that the systemd user instance stays up when the user logs out
systemctl enable --user podman
systemctl start --user podman
Set docker-compose to use systemd user podman socket:
export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
docker-compose should now work with a non-root user.
Optional: use a proxy with docker-compose
(https://stackoverflow.com/questions/54218632/how-to-use-local-proxy-settings-in-docker-compose)
Have DNS name resolution between containers
Install plugin for dnsmasq and containers DNS resolution (https://github.com/containers/dnsname/blob/main/README_PODMAN.md)
sudo dnf install podman-plugins
That’s it, you can now use docker-compose as a non-root user, and your containers should be able to connect to each others through DNS.
Workaround if rabbitmq keeps failing with Cannot connect to amqp://taiga:**@taiga-async-rabbitmq:5672/taiga: failed to resolve broker hostname.
:
It seems to be a bug with the DNS resolution in podman v3.X. podman v4 is not affected.
Just start the 2 rabbitmq containers ahead of the whole docker-compose and everything should be fine:
docker-compose up
Followed by Ctrl+C. Don’t use docker-compose down in order to keep the docker in the stopped state. Then:
podman start taiga-docker-main_taiga-events-rabbitmq_1
podman start taiga-docker-main_taiga-async-rabbitmq_1
docker-compose up