From f9785cc83a500b37caf20b01f39e3c64630f8a0e Mon Sep 17 00:00:00 2001 From: Jess Bowers Date: Tue, 9 Feb 2021 19:49:07 -0500 Subject: [PATCH] Handle docker pull errors --- src/docker.ts | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/docker.ts b/src/docker.ts index 2b2b094..79fa0f8 100644 --- a/src/docker.ts +++ b/src/docker.ts @@ -31,22 +31,26 @@ export function demux( } export function pull(docker: Dockerode, image: string): Promise { - return new Promise(resolve => { + return new Promise((resolve, reject) => { docker.pull(image, {}, (err, stream) => { - docker.modem.followProgress( - stream, - () => { - process.stdout.write('\n'); - resolve(); - }, - function(event: any) { - readline.clearLine(process.stdout, 0); - readline.cursorTo(process.stdout, 0); - process.stdout.write( - `${event.status} ${event.id || ''} ${event.progress || ''}` - ); - } - ); + if (stream) { + docker.modem.followProgress( + stream, + () => { + process.stdout.write('\n'); + resolve(); + }, + function (event: any) { + readline.clearLine(process.stdout, 0); + readline.cursorTo(process.stdout, 0); + process.stdout.write( + `${event.status} ${event.id || ''} ${event.progress || ''}` + ); + } + ); + } else { + reject(new Error(`Docker pull failed: ${err}`)); + } }); }); }