Skip to main content

Podman for the Astro CLI

The Astro CLI requires a container management engine to run Apache Airflow components on your local machine and deploy to Astro. For example, the astro dev start and astro deploy commands both require containers.

Starting with version 1.32.0, the Astro CLI is packaged with Podman as its container management engine for running Airflow locally, when installed by Homebrew or Winget.

Configure the Astro CLI to use Podman

Set up Podman on a Mac operating system so you can run Apache Airflow locally and deploy to Astro with Podman containers.

Prerequisites

  • Podman 3 or later. See Getting started with Podman.
  • A running Podman machine with at least 4 GiB of RAM. To confirm that Podman is running, run podman ps.
tip

If you receive an error after running podman ps, there is likely a problem with your Podman connection. You might need to set the system-level DOCKER_HOST environment variable to be the location of your Podman service socket:

  1. Run the following command to identify the connection URI for podman-machine-default:

    podman system connection ls

    The output should look like the following:

    podman-machine-default*      /Users/user/.ssh/podman-machine-default  ssh://core@localhost:54523/run/user/1000/podman/podman.sock
    podman-machine-default-root /Users/user/.ssh/podman-machine-default ssh://root@localhost:54523/run/podman/podman.sock
  2. Copy the value in the URI column from podman-machine-default*. This is typically unix:///run/podman/podman.sock, but it can vary based on your installation.

  3. Set your DOCKER_HOST environment variable to the value of the URI.

Setup

  1. Run the following command to confirm that Podman has access to Astro images at docker.io:

    podman run --rm -it postgres:12.6 whoami

    If this command fails, use Podman Desktop to change Podman's default image registry location to docker.io. See Provide pre-defined registries.

For CLI versions 1.30.0 and earlier

Run the following command to set Podman as your container management engine for the Astro CLI:

astro config set -g container.binary podman

If you're using Podman 3, additionally run the following command:

astro config set -g duplicate_volumes false

Troubleshooting

SHELL is not supported for OCI image format

WARN[0010] SHELL is not supported for OCI image format, [/bin/bash -o pipefail -e -u -x -c] will be ignored. Must use `docker` format

This error can occur when the CLI tries to build your Astro Runtime image using Podman.

To resolve this issue, run the following command to set the BUILDAH_FORMAT environment variable on your machine:

export BUILDAH_FORMAT=docker

Cannot connect to the Docker daemon

Error: error creating docker-compose project: Cannot connect to the Docker daemon at unix:///Users/[YOUR.USER]/.docker/run/docker.sock. Is the docker daemon running?

Ensure Docker Compatibility is enabled in Settings > Preferences > Experimental (Docker Compatibility) and Docker CLI Context is set to unix://var/run/docker.sock.

Configure Podman Docker Compatibility

"docker-credential-desktop": executable file not found

Error: error reading credentials: error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH, out: ``

This error can occur when Docker used to be installed, but no longer exists on the system. When podman runs, it is checking $HOME/.docker/config.json for registered credentials stores.

To resolve the issue, delete the corresponding Docker configuration at $HOME/.docker from the system or install Docker again.

Further info can be found here.

Was this page helpful?