(
containerName: string,
abortSignal?: AbortSignal
)
| 595 | } |
| 596 | |
| 597 | private async detectContainerUser( |
| 598 | containerName: string, |
| 599 | abortSignal?: AbortSignal |
| 600 | ): Promise<ContainerUserInfo> { |
| 601 | const [uidResult, gidResult, homeResult] = await Promise.all([ |
| 602 | runDockerCommand(`docker exec ${containerName} id -u`, 5000, abortSignal), |
| 603 | runDockerCommand(`docker exec ${containerName} id -g`, 5000, abortSignal), |
| 604 | runDockerCommand(`docker exec ${containerName} sh -c 'echo $HOME'`, 5000, abortSignal), |
| 605 | ]); |
| 606 | |
| 607 | return { |
| 608 | uid: sanitizeContainerUserId(uidResult.stdout), |
| 609 | gid: sanitizeContainerUserId(gidResult.stdout), |
| 610 | home: homeResult.stdout.trim() || "/root", |
| 611 | }; |
| 612 | } |
| 613 | |
| 614 | private storeContainerUserInfo(userInfo: ContainerUserInfo): void { |
| 615 | this.containerHome = userInfo.home; |
no test coverage detected