Files
podman/docs
Paul Holzinger e93040e1e3 docs: fix redoc swagger URL
Currently our API docs are not working as it fails to fetch the js file
with the redoc code which renders the swagger.

The reason this fails is because we have been tracking the "next"
version and that was recently bumped to v3.0.0-rc.0 which also seem to
have moved the location to use "bundle" (no s). As such we now get a 404
as the CDN doesn't find the file. [1]

I don't get why we have been tracking next to begin with, using latest
would still work as it points but that could be moved anytime as well so
switch the URL to pull in the lastest v2 version which should be safer
against unexpected changes like that.

While it could of course also break in a minor v2 release hard coding an
exact version would mean a fair amount of churn updating this (which I
guess would not happen) so this looks like the best compromise to me.

[1] https://www.npmjs.com/package/redoc/v/3.0.0-rc.0

Fixes: #27505

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-11-11 19:22:14 +01:00
..
2025-11-11 19:22:14 +01:00
2025-11-04 12:56:01 -05:00
2024-09-05 09:56:48 -04:00

Podman Documentation

The online man pages and other documents regarding Podman can be found at Read The Docs. The man pages can be found under the Commands link on that page.

Build the Docs

Directory Structure

Directory
Markdown source for man pages docs/source/markdown/
man pages aliases as .so files docs/source/markdown/links/
target for output docs/build
man pages docs/build/man
remote linux man pages docs/build/remote/linux
remote darwin man pages docs/build/remote/darwin
remote windows html pages docs/build/remote/windows

Support files

docs/remote-docs.sh Read the docs/source/markdown files and format for each platform
docs/links-to-html.lua pandoc filter to do aliases for html files
docs/use-pagetitle.lua pandoc filter to set html document title

Manpage Syntax

The syntax for the formatting of all man pages can be found here.

API Reference

The latest online documentation is automatically generated by two cooperating automation systems based on committed upstream source code. Firstly, the Cirrus-CI docs task builds pkg/api/swagger.yaml and uploads it to a public-facing location (Google Storage Bucket - an online service for storing unstructured data). Second, Read The Docs reacts to the github.com repository change, building the content for the libpod documentation site. This site includes for the API section, some javascript which consumes the uploaded swagger.yaml file directly from the Google Storage Bucket.

Since there are multiple systems and local cache is involved, it's possible that updates to documentation (especially the swagger/API docs) will lag by 10-or-so minutes. However, because the client (i.e. your web browser) is fetching content from multiple locations that do not share a common domain, accessing the API section may show a stack-trace similar to the following:

JavaScript Stack Trace Image

If reloading the page, or clearing your local cache does not fix the problem, it is likely caused by broken metadata needed to protect clients from cross-site-scripting style attacks. Please notify a maintainer so they may investigate how/why the swagger.yaml file's CORS-metadata is incorrect, or the file isn't accessible for some other reason.

Local Testing

To build standard man pages, run make docs. Results will be in docs/build/man.

To build HTMLized man pages: Assuming that you have the dependencies installed, then also install (showing Fedora in the example):

$ sudo dnf install python3-sphinx python3-recommonmark
$ pip install sphinx-markdown-tables myst_parser

(The above dependencies are current as of 2022-09-15. If you experience problems, please see requirements.txt in this directory, it will almost certainly be more up-to-date than this README.)

After that completes, cd to the docs directory in your Podman sandbox and then do make html.

You can then preview the html files in docs/build/html with:

python -m http.server 8000 --directory build/html

...and point your web browser at http://localhost:8000/