A Dockerfile-like workflow for cloud images and virtual machines
FROM fedora-cloud:44 RUN dnf install -y httpd && \ dnf clean all && \ systemctl enable httpd
ducttape build -t my-httpd -f Machinefile Building image my-httpd from fedora-cloud:44 ... VM ready. Running Machinefile... Stopping VM... Built image my-httpd ducttape run my-httpd --publish 8080:80 VM ducttape-my-httpd started (pid 12345) curl http://$(ducttape ports my-httpd :80)/ <!doctype html> <html> <head>... Fedora HTTP Server Test Page ...
Ducttape bridges container-like workflows with VM management. Write a Machinefile, build an image, run it as a VM, and share it via OCI registries.
Ducttape is a command-line tool designed to bridge the gap between container-like workflows and virtual machine (VM) management. It allows developers to build, run, and share VM images using a syntax and lifecycle similar to Docker or Podman.
Inspired by Dockerfiles, Machinefiles describe how to customize a base cloud image, installing packages, configuring services, and enabling systemd units, producing a reusable QCOW2 disk image.
FROM, RUN, COPY - your existing Dockerfiles and Containerfiles work as Machinefiles with little to no changes.
Push and pull VM images to any OCI registry. No special infrastructure required.
Pre/post Machinefile hooks for SSH configuration before the build and cleanup afterwards.
Lima by default, self-contained macadam also supported.