diff --git a/docker.js b/docker.js index 762d68dd4e..0211fc2c7f 100644 --- a/docker.js +++ b/docker.js @@ -95,6 +95,7 @@ export const getOnlyDirs = (srcpath, dirName) => { }; const getDefaultOptions = () => { + let authTokenSet = false; const opts = { enableUnixSockets: true, throwHttpErrors: true, @@ -127,6 +128,7 @@ const getDefaultOptions = () => { console.log( `Using the existing authentication token for the docker server ${serverAddress}` ); + authTokenSet = true; break; } } @@ -135,25 +137,34 @@ const getDefaultOptions = () => { // pass } } - } else if (process.env.DOCKER_AUTH_CONFIG) { + } + if (!authTokenSet && process.env.DOCKER_AUTH_CONFIG) { opts.headers = { "X-Registry-Auth": process.env.DOCKER_AUTH_CONFIG }; - } else if ( + authTokenSet = true; + } + if ( + !authTokenSet && process.env.DOCKER_USER && process.env.DOCKER_PASSWORD && process.env.DOCKER_EMAIL && process.env.DOCKER_SERVER_ADDRESS ) { + const authPayload = { + username: process.env.DOCKER_USER, + email: process.env.DOCKER_EMAIL, + serveraddress: process.env.DOCKER_SERVER_ADDRESS + }; + if (process.env.DOCKER_USER === "") { + authPayload.IdentityToken = process.env.DOCKER_PASSWORD; + } else { + authPayload.password = process.env.DOCKER_PASSWORD; + } opts.headers = { - "X-Registry-Auth": Buffer.from( - JSON.stringify({ - username: process.env.DOCKER_USER, - password: process.env.DOCKER_PASSWORD, - email: process.env.DOCKER_EMAIL, - serveraddress: process.env.DOCKER_SERVER_ADDRESS - }) - ).toString("base64") + "X-Registry-Auth": Buffer.from(JSON.stringify(authPayload)).toString( + "base64" + ) }; } const userInfo = _userInfo();