Skip to content

Podman: up can hang after "Container started" on create/recreate #1236

@KraXen72

Description

@KraXen72

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/cli 0.87.0 and 0.86.0
  • Podman 5.8.2
  • Node 24.15.0 and 22.22.3
  • Fedora 43 / Linux 7.0.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions