Skip to content
Back to top
View this page
Edit this page

# Docker container

Xonsh publishes a handful of containers, primarily targeting CI and automation use cases. All of them are published on Docker Hub.

- `xonsh/xonsh`: A base container providing basic xonsh

- `xonsh/interactive`: xonsh with additions for people

- `xonsh/action`: xonsh with additions for GitHub Actions

All containers use the same tagging scheme:

- `<version>`/`latest`: Based on `python:3` (Debian Buster)

- `<version>-slim`/`slim`: Based on `python:3-slim` (Debian Buster, slim variant)

- `<version>-alpine`/`alpine`: Based on `python:3-alpine` (Alpine Linux)

You can select specific versions of xonsh. However, you cannot select specific versions of Python. Everything is rebuilt daily.

All containers include an `xpip` utility to let you easily install packages from a Dockerfile.

The container source can be found in the container project.

## `xonsh/xonsh`

(Docker Hub)

A basic container, including Python itself, xonsh, and the linux extras. This container is deliberately kept minimal.

## `xonsh/interactive`

(Docker Hub)

A container made for humans (such as getting a shell inside of a pod). It includes prompt toolkit and pygments so that xonsh is more usable interactively.

## `xonsh/action`

(Docker Hub)

A container with extras for GitHub Actions.

First, some of the inputs are parsed into more helpful forms:

- `$GITHUB_EVENT`: The event that triggered the action (parsed from `$GITHUB_EVENT_PATH`)

- `$INPUT`: The input arguments configured in the workflow (from `$INPUT_*`)

In addition, if you have PyGithub or gqlmod installed, and an authentication token was found, they will be configured:

- PyGithub: A `Github` object can be found at `$GITHUB`

- gqlmod: the token will be applied globally and the library will be ready to use