SELinux labelling does not get disabled when using Podman machines

Aberta
#1,347 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@darshpatel1052 já está trabalhando nisso.

Desde 3/11/2026.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
40/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
typescript
Domínio
devtools

Direção de pesquisa

Start with isUsingSELinuxLabels() for image builds and getPodmanArgs() for container run args, both named in the issue. Check how cliHost and dockerCLI are used there and whether podman info can replace the getenforce check. Done means Podman machines and remote Podman get the SELinux decision from the correct host, with tests covering the changed branches.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Since #1045, SELinux labelling is supposed to get disabled for devcontainers when using Podman. However, this only works when Podman runs directly on the same (Linux) host as the devcontainers CLI. It is never applied with a Podman machine (the default on macOS and Windows) and the decision is made on the wrong host when Podman is remote (e.g. through an SSH tunnel) or a Podman machine runs on Linux.

Consider the current code of isUsingSELinuxLabels() for image builds. Container run args have a similar issue in getPodmanArgs().

return params.cliVariant === CLIVariant.Podman && cliHost.platform === 'linux'
	&& (await runCommandNoPty({
		exec: cliHost.exec,
		cmd: 'getenforce',
		output,
		print: true,
	})).stdout.toString().trim() !== 'Disabled'
	&& (await dockerCLI({
		...toExecParameters(params),
		print: true,
	}, 'info', '-f', '{{.Host.Security.SELinuxEnabled}}')).stdout.toString().trim() === 'true';

Neither will cliHost.platform always be "linux", nor will running getenforce on the local host always yield the right result. On macOS, getenforce doesn't exist, so the call throws and returns false.

The correct way would probably be to always use podman info and remove the preceding checks.

Potentially related: #1071

Linguagem predominante
TypeScript
Estrelas
3k
Forks
473
Merge médio
10h 31min
PRs com merge (30d)
9

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de devcontainers/cli

Todas as issues de devcontainers/cli

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.