File tree Expand file tree Collapse file tree 1 file changed +17
-4
lines changed Expand file tree Collapse file tree 1 file changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -21,10 +21,23 @@ import {
21
21
} from './docker-tunnel-proxy' ;
22
22
import { ensureDockerInjectionVolumeExists } from './docker-data-injection' ;
23
23
24
- export const isDockerAvailable = ( ) =>
25
- ( async ( ) => new Docker ( ) . ping ( ) ) ( ) // Catch sync & async setup errors
26
- . then ( ( ) => true )
27
- . catch ( ( ) => false ) ;
24
+ let dockerAvailableCache : Promise < boolean > | undefined ;
25
+
26
+ export const isDockerAvailable = ( ) => {
27
+ if ( dockerAvailableCache ) return dockerAvailableCache ;
28
+ else {
29
+ dockerAvailableCache = ( async ( ) => { // Catch sync & async setup errors
30
+ await new Docker ( ) . ping ( )
31
+ } ) ( )
32
+ . then ( ( ) => true )
33
+ . catch ( ( ) => false ) ;
34
+
35
+ // Cache the resulting status for 3 seconds:
36
+ setTimeout ( ( ) => { dockerAvailableCache = undefined ; } , 3000 ) ;
37
+
38
+ return dockerAvailableCache ;
39
+ }
40
+ }
28
41
29
42
const IPv4_IPv6_PREFIX = "::ffff:" ;
30
43
You can’t perform that action at this time.
0 commit comments