diff --git a/__tests__/docker/install.test.itg.ts b/__tests__/docker/install.test.itg.ts index 1bf98169..b960e77a 100644 --- a/__tests__/docker/install.test.itg.ts +++ b/__tests__/docker/install.test.itg.ts @@ -23,7 +23,7 @@ import {Install, InstallSourceArchive, InstallSourceImage} from '../../src/docke import {Docker} from '../../src/docker/docker'; import {Exec} from '../../src/exec'; -const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-itg-')); +const tmpDir = () => fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-itg-')); describe('install', () => { const originalEnv = process.env; @@ -51,7 +51,7 @@ aarch64:https://cloud.debian.org/images/cloud/bookworm/20231013-1532/debian-12-g await ensureNoSystemContainerd(); const install = new Install({ source: source, - runDir: tmpDir, + runDir: tmpDir(), contextName: 'foo', daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}` }); @@ -74,7 +74,7 @@ describe('rootless', () => { await ensureNoSystemContainerd(); const install = new Install({ source: source, - runDir: tmpDir, + runDir: tmpDir(), contextName: 'foo', daemonConfig: `{"debug":true}`, rootless: true diff --git a/src/docker/install.ts b/src/docker/install.ts index e3c1629d..22828cfb 100644 --- a/src/docker/install.ts +++ b/src/docker/install.ts @@ -170,7 +170,11 @@ export class Install { if (this.rootless) { core.info(`Downloading Docker rootless extras ${version} from ${this.source.channel} at download.docker.com`); const extrasFolder = await this.downloadStaticArchive('docker-rootless-extras', this.source); - fs.copyFileSync(path.join(extrasFolder, 'dockerd-rootless.sh'), path.join(extractFolder, 'dockerd-rootless.sh')); + fs.readdirSync(extrasFolder).forEach(file => { + const src = path.join(extrasFolder, file); + const dest = path.join(extractFolder, file); + fs.copyFileSync(src, dest); + }); } break; } @@ -492,6 +496,13 @@ EOF`, throw new Error(`Unsupported platform: ${os.platform()}`); } } + + await core.group(`Cleaning up toolDir`, async () => { + if (!this._toolDir) { + return; + } + fs.rmSync(this._toolDir, {recursive: true, force: true}); + }); } private async tearDownDarwin(): Promise { @@ -541,6 +552,9 @@ EOF`, await core.group('Removing Docker context', async () => { await Docker.exec(['context', 'rm', '-f', this.contextName]); }); + await core.group('Stopping Docker daemon service', async () => { + await Exec.exec('powershell', ['-Command', `Stop-Service -Name docker -Force`]); + }); } private downloadURL(component: 'docker' | 'docker-rootless-extras', version: string, channel: string): string {