flecks/packages/docker/build/plugin.js

32 lines
999 B
JavaScript
Raw Normal View History

2024-01-22 09:16:07 -06:00
const {dumpYml} = require('@flecks/build/server');
2023-12-10 14:23:12 -06:00
2024-01-20 05:18:18 -06:00
const {generateComposeConfig, generateDockerFile} = require('./generate');
2023-12-10 14:23:12 -06:00
2024-01-20 05:18:18 -06:00
module.exports = class FlecksDockerOutput {
2023-12-10 14:23:12 -06:00
constructor(options) {
this.options = options;
}
// eslint-disable-next-line class-methods-use-this
apply(compiler) {
compiler.hooks.compilation.tap('FlecksDockerOutput', (compilation) => {
compilation.hooks.additionalAssets.tapAsync('FlecksDockerOutput', async (callback) => {
2024-01-29 08:15:22 -06:00
const dockerFile = await generateDockerFile(this.options.flecks);
2023-12-10 14:23:12 -06:00
compilation.assets.Dockerfile = {
source: () => dockerFile,
size: () => dockerFile.length,
};
const composeConfig = await generateComposeConfig(this.options.flecks);
const composeFile = dumpYml(composeConfig);
compilation.assets['docker-compose.yml'] = {
source: () => composeFile,
size: () => composeFile.length,
};
callback();
});
});
}
2024-01-20 05:18:18 -06:00
};