Podman: up can hang after "Container started" on create/recreate
Summary
devcontainer up can hang forever after printing Container started when using Podman and creating/recreating a container. It appears to be waiting for the Podman start event even though the container is already running.
Repro
DCMAN_SSH_PORT=56701 devcontainer up \
--remove-existing-container \
--skip-post-create \
--no-lockfile \
--docker-path podman \
--update-remote-user-uid-default never \
--workspace-folder /path/to/workspace
The workspace a .devcontainer.json very similar to this (some stuff removed). --skip-post-create still reproduces the hang, so postCreateCommand does not appear to be the cause.
{
"name": "Fedora Sandbox",
"image": "ghcr.io/kraxen72/fedora-toolchain-base:latest",
"postCreateCommand": "pnpm add -g typescript npm-check-updates degit repomix @devcontainers/cli",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/vscode/workspaces/${localWorkspaceFolderBasename},type=bind,Z",
"workspaceFolder": "/home/vscode/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/kraxen72/devcontainer-features/common-utils-bash-prompt:1": {},
"ghcr.io/kraxen72/devcontainer-features/pnpm:1": {},
"ghcr.io/kraxen72/devcontainer-features/codex-cli:1": { "version": "latest", "autoUpdate": true },
"ghcr.io/kraxen72/devcontainer-features/copilot-cli:1": { "version": "latest", "autoUpdate": true },
"ghcr.io/kraxen72/devcontainer-features/ssh-zed:2": {}
},
"runArgs": [
"--name=dcman_${localWorkspaceFolderBasename}",
"--publish=127.0.0.1:${localEnv:DCMAN_SSH_PORT}:2222",
"--cap-drop=ALL",
"--cap-add=SETUID",
"--cap-add=SETGID",
"--security-opt=no-new-privileges",
"--tmpfs=/tmp:exec,mode=1777",
"--pids-limit=2048",
"--ulimit=nproc=2048:2048",
"--ulimit=nofile=65536:65536"
],
"remoteUser": "vscode",
"updateRemoteUserUID": true
}
Expected
After Container started, the CLI should inspect/setup the running container and continue to user commands or finish.
Actual
The CLI hangs after:
Start: Run: podman run ...
Container started
Process inspection shows a live podman events --format json --filter event=start child and the attached podman run child. The container is running and podman events --since ... --filter event=start shows the matching start event with the expected devcontainer.local_folder / devcontainer.config_file labels.
Existing-container devcontainer up completes. --skip-post-create still hangs, so this is before post-create. Running with --log-level debug or trace often makes it pass, which looks like a timing race in the event listener setup.
Versions tested
@devcontainers/cli0.87.0 and 0.86.0- Podman 5.8.2
- Node 24.15.0 and 22.22.3
- Fedora 43 / Linux 7.0.4
Source: devcontainers/cli