An open API service indexing awesome lists of open source software.

https://github.com/davdiv/buildahcker

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.
https://github.com/davdiv/buildahcker

alpine bootable build buildah cache container disk docker gpt grub hash oci-image parted partition squashfs

Last synced: 5 months ago
JSON representation

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.

Awesome Lists containing this project

README

          

# Buildahcker

[![npm](https://img.shields.io/npm/v/buildahcker)](https://www.npmjs.com/package/buildahcker)

Buildahcker is a node.js library to create and run commands in OCI (Open Container Initiative) container images (or docker images), based on [Buildah](https://buildah.io/) 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](https://davdiv.github.io/buildahcker/).

## Installation

```bash
npm install buildahcker --save-dev
```

## Usage

Here is a basic sample:

```typescript
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](https://github.com/davdiv/buildahcker/tree/main/test) and [this sample repository](https://github.com/davdiv/buildahcker-alpine-sample) for more usage examples.