(params: DockerResolverParameters, config: DevContainerFromDockerfileConfig | DevContainerFromImageConfig, mergedConfig: MergedDevContainerConfig, imageDetails: () => Promise<ImageDetails>)
| 436 | } |
| 437 | |
| 438 | async function getPodmanArgs(params: DockerResolverParameters, config: DevContainerFromDockerfileConfig | DevContainerFromImageConfig, mergedConfig: MergedDevContainerConfig, imageDetails: () => Promise<ImageDetails>): Promise<string[]> { |
| 439 | if (params.cliVariant === CLIVariant.Podman && params.common.cliHost.platform === 'linux') { |
| 440 | const args = ['--security-opt', 'label=disable']; |
| 441 | const hasIdMapping = (config.runArgs || []).some(arg => /--[ug]idmap(=|$)/.test(arg)); |
| 442 | if (!hasIdMapping) { |
| 443 | const remoteUser = mergedConfig.remoteUser || findUserArg(config.runArgs) || (await imageDetails()).Config.User || 'root'; |
| 444 | if (remoteUser !== 'root' && remoteUser !== '0') { |
| 445 | args.push('--userns=keep-id'); |
| 446 | } |
| 447 | } |
| 448 | return args; |
| 449 | } |
| 450 | return []; |
| 451 | } |
| 452 | |
| 453 | // Convert a --mount string (e.g., "type=bind,source=/a,target=/b,consistency=cached") to -v syntax for wslc. |
| 454 | function convertMountToVolume(mountStr: string): string[] { |
no test coverage detected