devcontainers / devcontainers/cli

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

Đang mở
#1,236 1 bình luận 3 reaction 1 người được giao Được @v-Mathiyarasy nhận Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
3k
Fork
457
Merge trung bình
13 giờ 17 phút
Pull request đã merge (30 ngày)
6

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.