UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

45 lines (41 loc) 1.37 kB
import * as logSymbols from 'log-symbols'; import { buildDockerImage } from '../../util/docker/docker-cmd'; import { CliTerseError } from '@alwaysai/alwayscli'; import { Spawner, echo, logger, stringifyError } from '../../util'; export async function buildDockerImageComponent(props: { targetHostSpawner: Spawner; targetHardware?: string; dockerImageTag?: string; dockerfilePath?: string; pullBaseImage?: boolean; }) { const { targetHostSpawner, targetHardware, dockerImageTag, dockerfilePath, pullBaseImage } = props; const dockerTagStr = dockerImageTag ? ` (tag=${dockerImageTag})` : ''; const targetHardwareStr = targetHardware ? ` (ALWAYSAI_HW=${targetHardware})` : ''; const BUILD_DOCKER_IMAGE_MESSAGE = `Build docker image${dockerTagStr}${targetHardwareStr}`; echo(`- ${BUILD_DOCKER_IMAGE_MESSAGE}`); try { const dockerImageId = await buildDockerImage({ targetHostSpawner, targetHardware, dockerImageTag, dockerfilePath, pullBaseImage, runInForeground: true }); echo(`${logSymbols.success} ${BUILD_DOCKER_IMAGE_MESSAGE}`); return dockerImageId; } catch (exception) { logger.error(stringifyError(exception)); echo(`${logSymbols.error} ${BUILD_DOCKER_IMAGE_MESSAGE}`); throw new CliTerseError('Docker build failed! Check Docker logs.'); } }