devcontainers / devcontainers/cli

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

Abierto
#1,236 1 comentario 3 reacciones 1 asignado Reclamado por @v-Mathiyarasy Ver en GitHub
Lenguaje dominante
TypeScript
Estrellas
3k
Forks
457
Merge medio
13 h 17 min
PR fusionados (30 d)
6

Descripción

### 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

```sh
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.

```json
{
"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:

```text
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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.