diff --git a/src/api/process-manager.ts b/src/api/process-manager.ts index 02ad7d603..36e23afba 100644 --- a/src/api/process-manager.ts +++ b/src/api/process-manager.ts @@ -275,7 +275,7 @@ export function startJob(buildId: number, jobId: number): Promise { .skip(1) .subscribe(event => { terminalEvents.next(event); - if (event.data) { + if (event.data && event.type === 'data') { process.log.push(event.data); procs[procIndex] = process; jobProcesses.next(procs); diff --git a/src/api/process.ts b/src/api/process.ts index f79d8d266..944b5ae6a 100644 --- a/src/api/process.ts +++ b/src/api/process.ts @@ -52,7 +52,8 @@ export function startBuildProcess(buildId: number, jobId: number, function executeInContainer(name: string, command: string, vars = []): Observable { return new Observable(observer => { - const args = ['exec', '--privileged', '-it'] + const args = ['exec', '--privileged'] + .concat(command.startsWith('sudo') ? '-i' : '-it') .concat(vars) .concat(name, 'bash', '-l', '-c', `'${command}'`); const process = pty.spawn('docker', [args.join(' ')], { shell: true }); @@ -72,7 +73,7 @@ function executeInContainer(name: string, command: string, vars = []): Observabl function startContainer(name: string, image: string): Observable { return new Observable(observer => { - const args = ['run', '--privileged', '-dit', '--name', name, image]; + const args = ['run', '--privileged', '-di', '--name', name, image]; const process = pty.spawn('docker', args); process.on('exit', exitCode => {