ngx-deploy-docker
Version:
Publish your angular projects to a docker registry by just run `ng deploy your-app`
1 lines • 4.43 kB
Source Map (JSON)
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/engine/engine.ts"],"names":[],"mappings":"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","sourcesContent":["import { logging } from '@angular-devkit/core';\r\n\r\nimport { Schema } from '../deploy/schema';\r\n\r\nimport * as child_process from 'child_process';\r\n\r\nfunction getImageNameWithTag(options: Schema): string {\r\n return options.account !== ''\r\n ? `${options.account}/${options.imageName}:${options.tag}`\r\n : `${options.imageName}:${options.tag}`;\r\n}\r\n\r\nasync function buildDockerImage(\r\n imageNameWithTag: string,\r\n logger: logging.LoggerApi\r\n): Promise<void> {\r\n // context.reportStatus(`Executing \"docker build\"...`);\r\n const child = child_process.spawn(\r\n 'docker',\r\n ['build', '-t', imageNameWithTag, '.'],\r\n {\r\n stdio: 'pipe',\r\n }\r\n );\r\n\r\n child.stdout.on('data', (data) => {\r\n logger.info(data.toString());\r\n });\r\n child.stderr.on('data', (data) => {\r\n logger.error(data.toString());\r\n });\r\n\r\n return new Promise((resolve) => {\r\n // context.reportStatus(`Done.`);\r\n child.on('close', (code) => {\r\n resolve();\r\n });\r\n });\r\n}\r\n\r\nasync function publishDockerImage(\r\n imageNameWithTag: string,\r\n logger: logging.LoggerApi\r\n): Promise<void> {\r\n const child = child_process.spawn('docker', ['push', imageNameWithTag], {\r\n stdio: 'pipe',\r\n });\r\n\r\n child.stdout.on('data', (data) => {\r\n logger.info(data.toString());\r\n });\r\n child.stderr.on('data', (data) => {\r\n logger.error(data.toString());\r\n });\r\n\r\n return new Promise((resolve) => {\r\n // context.reportStatus(`Done.`);\r\n child.on('close', (code) => {\r\n resolve();\r\n });\r\n });\r\n}\r\n\r\nexport async function run(options: Schema, logger: logging.LoggerApi) {\r\n try {\r\n const imageNameWithTag = getImageNameWithTag(options);\r\n\r\n logger.info('🚧 Executing Docker Build...');\r\n await buildDockerImage(imageNameWithTag, logger);\r\n logger.info('✔️ Docker Build was successfully');\r\n\r\n logger.info('🚀 Publishing image to registry');\r\n await publishDockerImage(imageNameWithTag, logger);\r\n logger.info('🎊 Successfully published image. Have a nice day.');\r\n } catch (error) {\r\n logger.error('❌ An error occurred!');\r\n throw error;\r\n }\r\n}\r\n"]}