Buildahcker is a node.js library to create and run commands in OCI (Open Container Initiative) container images (or docker images), based on Buildah and a hash-based cache. It also contains utilities to easily create a partitioned bootable disk image of a Linux system.
Have a look to the API documentation here.
npm install buildahcker --save-dev
Here is a basic sample:
import {
defaultContainerCache,
ImageBuilder,
run,
addFiles,
MemFile,
DiskLocation,
} from "buildahcker";
const createImage = async () => {
const builder = await ImageBuilder.from("alpine:latest", {
logger: process.stdout,
containerCache: defaultContainerCache(),
});
await builder.executeStep([
run(["apk", "add", "--no-cache", "nginx"]),
addFiles({
"etc/issue": new MemFile({
content: "Hello",
}),
app: new DiskLocation("./app", {
overrideAttributes: { uid: 1, gid: 2 },
}),
}),
]);
console.log("Created image: ", builder.imageId);
};
createImage();
Check the tests and this sample repository for more usage examples.