Files
bearnet/image/Makefile
2026-06-05 17:56:39 +08:00

38 lines
1.1 KiB
Makefile

SHELL := /bin/sh
# --- configurable ----------------------------------------------------
IMAGE_NAME = alpine-vm
IMAGE_SIZE ?= 2G
IMAGE_FORMAT = raw
ALPINE_BRANCH ?= latest-stable
KERNEL_FLAVOR ?= virt
#INITFS_FEATURES ?= kms scsi virtio
IMAGE_FILE = vm.$(IMAGE_FORMAT)
SCRIPT_DIR = $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
OVERLAY_DIR = $(SCRIPT_DIR)/overlay
CONFIGURE_SH = $(SCRIPT_DIR)/configure.sh
build:
@echo ">>> Building $(IMAGE_FILE) ..."
@test -f $(OVERLAY_DIR)/root/gpg-key.asc || { \
echo "ERROR: GPG key not found. Generate key first" >&2; \
exit 1; \
}
alpine-make-vm-image \
--branch $(ALPINE_BRANCH) \
--image-format $(IMAGE_FORMAT) \
--image-size $(IMAGE_SIZE) \
--kernel-flavor $(KERNEL_FLAVOR) \
--serial-console \
--fs-skel-dir $(OVERLAY_DIR) \
--fs-skel-chown root:root \
--script-chroot \
--packages "python3 py3-yaml py3-pydantic git curl gnupg docker docker-cli-buildx docker-cli-compose cronie" \
$(IMAGE_FILE) \
$(CONFIGURE_SH)
@echo ">>> Image built: $(IMAGE_FILE)"
@ls -lh $(IMAGE_FILE)
.PHONY: build