Running Tutor with Podman ------------------------- You have the option of running Tutor with `Podman `__, instead of the native Docker tools. This has some practical advantages: it does not require a running Docker daemon, and it enables you to run and build Docker images without depending on any system component running ``root``. As such, it is particularly useful for building Tutor images from CI pipelines. The ``podman`` CLI aims to be fully compatible with the ``docker`` CLI, and ``podman-compose`` is a fully-compatible alias of ``docker-compose``. This means that you can use both together with Tutor, without making any changes to Tutor itself. .. warning:: You should not attempt to run Tutor with Podman on a system that already has native ``docker`` and ``docker-compose`` installed. If you want to switch to ``podman`` and ``podman-compose`` using the aliases described here, uninstall the native Docker packages first. Enabling Podman ~~~~~~~~~~~~~~~ Podman is supported on a variety of development platforms, see the `installation instructions `_ for details. Once you have installed Podman and its dependencies on the platform of your choice, you'll need to make sure that its ``podman`` binary, usually installed as ``/usr/bin/podman``, is aliased to ``docker``, and is included as such in your system ``$PATH``. On some CentOS and Fedora releases you can install a package named ``podman-docker`` to do this for you, but on other platforms you'll need to take of this yourself. - If ``$HOME/bin`` is in your ``$PATH``, you can create a symbolic link there:: ln -s $(which podman) $HOME/bin/docker - If you want to instead make ``docker`` a system-wide alias for ``podman``, you can create your symlink in ``/usr/local/bin``, an action that normally requires ``root`` privileges:: sudo ln -s $(which podman) /usr/local/bin/docker Enabling podman-compose ~~~~~~~~~~~~~~~~~~~~~~~ ``podman-compose`` is available as a package from PyPI, and can thus be installed with ``pip``. See `its README `_ for installation instructions. Note that if you have installed Tutor in its own virtualenv, you'll need to run ``pip install podman-compose`` in that same virtualenv. Once installed, you'll again need to create a symbolic link that aliases ``docker-compose`` to ``podman-compose``. - If you run Tutor and ``podman-compose`` in a virtualenv, create the symlink in that virtualenv's ``bin`` directory: activate the virtualenv, then run:: ln -s $(which podman-compose) $(dirname $(which podman-compose))/docker-compose - If you do not, create the symlink in ``/usr/local/bin``, using ``root`` privileges:: sudo ln -s $(which podman-compose) /usr/local/bin/docker-compose Verifying your environment ~~~~~~~~~~~~~~~~~~~~~~~~~~ Once you have configured your symbolic links as described, you should be able to run ``docker version`` and ``docker-compose --help`` and their output should agree, respectively, with ``podman version`` and ``podman-compose --help``. After that, you should be able to use ``tutor local``, ``tutor build``, and other commands as if you had installed the native Docker tools.