@@ -8,7 +8,8 @@ import { OVERRIDES_DIR } from '../terminal/terminal-env-overrides';
8
8
import { isDockerAvailable } from "./docker-interception-services" ;
9
9
import { waitForDockerStream } from './docker-utils' ;
10
10
11
- const DOCKER_BLANK_TAG = 'tech.httptoolkit.docker.scratch' ;
11
+ const DOCKER_BLANK_IMAGE_NAME = 'httptoolkit/scratch' ;
12
+ const DOCKER_BLANK_LABEL = 'tech.httptoolkit.docker.scratch' ;
12
13
const DOCKER_VOLUME_LABEL = 'tech.httptoolkit.docker.data-volume' ;
13
14
const DOCKER_VOLUME_CERT_LABEL = 'tech.httptoolkit.docker.data-volume.cert-content' ;
14
15
@@ -70,23 +71,24 @@ async function createBlankImage(docker: Docker) {
70
71
// Dockerfile, sending no context, so it's super fast.
71
72
72
73
// Skip image creation if it already exists:
73
- const existingImage = await docker . getImage ( DOCKER_BLANK_TAG ) . inspect ( )
74
+ const existingImage = await docker . getImage ( DOCKER_BLANK_IMAGE_NAME ) . inspect ( )
74
75
. then ( ( ) => true )
75
76
. catch ( ( ) => false ) ;
76
- if ( existingImage ) return DOCKER_BLANK_TAG ;
77
+ if ( existingImage ) return DOCKER_BLANK_IMAGE_NAME ;
77
78
78
79
const blankImageContextStream = await buildTarStream ( [ {
79
80
path : 'Dockerfile' ,
80
81
contents : 'FROM scratch\nENTRYPOINT ["FAIL"]\n'
81
82
} ] ) ;
82
83
const buildStream = await docker . buildImage ( blankImageContextStream , {
83
84
dockerfile : 'Dockerfile' ,
84
- t : DOCKER_BLANK_TAG
85
+ t : DOCKER_BLANK_IMAGE_NAME ,
86
+ labels : { [ DOCKER_BLANK_LABEL ] : '' }
85
87
} ) ;
86
88
87
89
await waitForDockerStream ( docker , buildStream ) ;
88
90
89
- return DOCKER_BLANK_TAG ;
91
+ return DOCKER_BLANK_IMAGE_NAME ;
90
92
}
91
93
92
94
// Parallel processing of a single Docker volume and the other assorted containers is asking for trouble,
@@ -136,8 +138,8 @@ export function ensureDockerInjectionVolumeExists(certContent: string) {
136
138
137
139
// Then we create a blank container from the blank image with the volume mounted:
138
140
const blankContainer = await docker . createContainer ( {
139
- Image : DOCKER_BLANK_TAG ,
140
- Labels : { [ DOCKER_BLANK_TAG ] : '' } ,
141
+ Image : DOCKER_BLANK_IMAGE_NAME ,
142
+ Labels : { [ DOCKER_BLANK_LABEL ] : '' } ,
141
143
HostConfig : {
142
144
Binds : [ `${ DOCKER_DATA_VOLUME_NAME } :/data-volume` ]
143
145
}
@@ -210,21 +212,21 @@ async function cleanupDataInjectionVolumes(docker: Docker, options: { keepCurren
210
212
async function cleanupDataInjectionTools ( docker : Docker ) {
211
213
const blankContainers = await docker . listContainers ( {
212
214
all : true ,
213
- filters : JSON . stringify ( { label : [ DOCKER_BLANK_TAG ] } )
215
+ filters : JSON . stringify ( { label : [ DOCKER_BLANK_LABEL ] } )
214
216
} ) ;
215
217
await Promise . all (
216
218
blankContainers
217
- . filter ( c => c . Labels ?. [ DOCKER_BLANK_TAG ] !== undefined ) // Be extra careful
219
+ . filter ( c => c . Labels ?. [ DOCKER_BLANK_LABEL ] !== undefined ) // Be extra careful
218
220
. map ( c => docker . getContainer ( c . Id ) . remove ( { force : true } ) )
219
221
) ;
220
222
221
223
const blankImages = await docker . listImages ( {
222
- filters : JSON . stringify ( { label : [ DOCKER_BLANK_TAG ] } )
224
+ filters : JSON . stringify ( { label : [ DOCKER_BLANK_LABEL ] } )
223
225
} ) ;
224
226
225
227
await Promise . all (
226
228
blankImages
227
- . filter ( i => i . Labels ?. [ DOCKER_BLANK_TAG ] !== undefined ) // Be extra careful
229
+ . filter ( i => i . Labels ?. [ DOCKER_BLANK_LABEL ] !== undefined ) // Be extra careful
228
230
. map ( i => docker . getImage ( i . Id ) . remove ( { force : true } ) )
229
231
) ;
230
232
}
0 commit comments