@@ -12,53 +12,65 @@ export type DockerClientConfig = {
1212} ;
1313
1414export const getDockerClientConfig = async ( env : NodeJS . ProcessEnv = process . env ) : Promise < DockerClientConfig > => {
15- let dockerHost : string | undefined ;
16- let dockerTlsVerify : string | undefined ;
17- let dockerCertPath : string | undefined ;
15+ const dockerClientConfig : DockerClientConfig = {
16+ ...( await loadFromFile ( ) ) ,
17+ ...loadFromEnv ( env ) ,
18+ } ;
19+ logDockerClientConfig ( dockerClientConfig ) ;
20+ return dockerClientConfig ;
21+ } ;
1822
23+ async function loadFromFile ( ) {
1924 const file = path . resolve ( homedir ( ) , ".testcontainers.properties" ) ;
25+
26+ const dockerClientConfig : DockerClientConfig = { } ;
27+
2028 if ( existsSync ( file ) ) {
21- log . debug ( " Found .testcontainers.properties file" ) ;
29+ log . debug ( ` Found " .testcontainers.properties" file` ) ;
2230 const string = await readFile ( file , { encoding : "utf-8" } ) ;
2331 const properties = propertiesReader ( "" ) . read ( string ) ;
2432
2533 const host = properties . get ( "docker.host" ) as string ;
2634 if ( host !== null ) {
27- dockerHost = host ;
35+ dockerClientConfig . dockerHost = host ;
2836 }
2937
3038 const tlsVerify = properties . get ( "docker.tls.verify" ) as number ;
3139 if ( tlsVerify !== null ) {
32- dockerTlsVerify = `${ tlsVerify } ` ;
40+ dockerClientConfig . dockerTlsVerify = `${ tlsVerify } ` ;
3341 }
3442
3543 const certPath = properties . get ( "docker.cert.path" ) as string ;
3644 if ( certPath !== null ) {
37- dockerCertPath = certPath ;
45+ dockerClientConfig . dockerCertPath = certPath ;
3846 }
3947 }
4048
49+ return dockerClientConfig ;
50+ }
51+
52+ function loadFromEnv ( env : NodeJS . ProcessEnv ) {
53+ const dockerClientConfig : DockerClientConfig = { } ;
54+
4155 if ( env [ "DOCKER_HOST" ] !== undefined ) {
42- dockerHost = env [ "DOCKER_HOST" ] ;
56+ dockerClientConfig . dockerHost = env [ "DOCKER_HOST" ] ;
4357 }
4458 if ( env [ "DOCKER_TLS_VERIFY" ] !== undefined ) {
45- dockerTlsVerify = env [ "DOCKER_TLS_VERIFY" ] ;
59+ dockerClientConfig . dockerTlsVerify = env [ "DOCKER_TLS_VERIFY" ] ;
4660 }
4761 if ( env [ "DOCKER_CERT_PATH" ] !== undefined ) {
48- dockerCertPath = env [ "DOCKER_CERT_PATH" ] ;
62+ dockerClientConfig . dockerCertPath = env [ "DOCKER_CERT_PATH" ] ;
4963 }
5064
51- let logStr = "Loaded properties: " ;
52- if ( dockerHost !== undefined ) {
53- logStr += `dockerHost=${ dockerHost } , ` ;
54- }
55- if ( dockerTlsVerify !== undefined ) {
56- logStr += `dockerTlsVerify=${ dockerTlsVerify } , ` ;
57- }
58- if ( dockerCertPath !== undefined ) {
59- logStr += `dockerCertPath=${ dockerCertPath } ` ;
60- }
61- log . debug ( logStr ) ;
65+ return dockerClientConfig ;
66+ }
6267
63- return { dockerHost, dockerTlsVerify, dockerCertPath } ;
64- } ;
68+ function logDockerClientConfig ( config : DockerClientConfig ) {
69+ const configurations = Object . entries ( config )
70+ . filter ( ( [ , value ] ) => value !== undefined )
71+ . map ( ( [ key , value ] ) => `${ key } : "${ value } "` ) ;
72+
73+ if ( configurations . length > 0 ) {
74+ log . debug ( `Loaded Docker client configuration, ${ configurations . join ( ", " ) } ` ) ;
75+ }
76+ }
0 commit comments