Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions