New features: - Automatic error reporting (enabled by default) - Increase build times by leveraging docker build caches - Fixes: - Fix error handling - Fix vue autodetect - Custom dockerfile is not the default Others: - Cleanup `logs-servers` collection, because old errors are not standardized - New Traefik proxy version - Standardized directory configurations
25 lines
907 B
JavaScript
25 lines
907 B
JavaScript
const fs = require('fs').promises
|
|
const { streamEvents, docker } = require('../libs/docker')
|
|
const buildImageNodeDocker = (configuration) => {
|
|
return [
|
|
'FROM node:lts',
|
|
'WORKDIR /usr/src/app',
|
|
`COPY ${configuration.build.directory}/package*.json .`,
|
|
configuration.build.command.installation && `RUN ${configuration.build.command.installation}`,
|
|
`COPY ./${configuration.build.directory} .`,
|
|
`RUN ${configuration.build.command.build}`
|
|
].join('\n')
|
|
}
|
|
async function buildImage (configuration) {
|
|
await fs.writeFile(`${configuration.general.workdir}/Dockerfile`, buildImageNodeDocker(configuration))
|
|
const stream = await docker.engine.buildImage(
|
|
{ src: ['.'], context: configuration.general.workdir },
|
|
{ t: `${configuration.build.container.name}:${configuration.build.container.tag}` }
|
|
)
|
|
await streamEvents(stream, configuration)
|
|
}
|
|
|
|
module.exports = {
|
|
buildImage
|
|
}
|