Podman: automatic `--userns=keep-id` breaks containers using host networking

Abierto
#1,301 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
typescript
Área
cli, devops

Línea de trabajo

Comienza en src/spec-node/singleContainer.ts, en getPodmanArgs(), y compara después cómo se incorporan runArgs y --network=host al comando de Podman generado. Utiliza el reproducer de Alpine del issue para verificar los argumentos en conflicto y confirma que una elección explícita del usuario puede evitar la combinación automática que falla.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I'm facing an issue when using podman and --network=host combination:

Environment

  • @devcontainers/cli: 0.88.0
  • Podman client/server: 5.7.1
  • Host: WSL2
  • Podman server: rootful

Problem

For Podman on Linux and a non-root remoteUser, Dev Containers automatically adds:

--security-opt label=disable --userns=keep-id

See https://github.com/devcontainers/cli/issues/1004 and https://github.com/microsoft/vscode-remote-release/issues/10399.

When the configuration also requires --network=host, the container fails to start.

Minimal underlying reproducer

This fails:

podman run --rm \
  --network=host \
  --userns=keep-id \
  docker.io/library/alpine:3.20 \
  true

Error:

crun: mount `sysfs` to `sys`: Operation not permitted: OCI permission denied

Without --userns=keep-id, it succeeds:

podman run --rm \
  --network=host \
  docker.io/library/alpine:3.20 \
  true

The CLI-generated podman run command contains both:

--userns=keep-id --network=host

The automatic argument is added in:

src/spec-node/singleContainer.ts
getPodmanArgs()

Expected behavior

Users must be able to prevent the CLI from adding --userns=keep-id.

Possible fixes

No one is perfect I'm afraid.

  1. Do not add --userns=keep-id when --network=host is present.
  2. Add a setting or CLI option to disable automatic Podman arguments.
  3. Respect an explicit --userns=... in runArgs and do not add --userns=keep-id.
  4. Make automatic --userns=keep-id opt-in instead of unconditional for non-root users.

Big thanks.

Lenguaje dominante
TypeScript
Estrellas
3k
Forks
461
Merge medio
13 h 17 min
PR fusionados (30 d)
6

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de devcontainers/cli

Todos los issues de devcontainers/cli

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.