fix and finally ran

This commit is contained in:
iceBear67
2026-06-16 16:42:28 +08:00
parent 71f46fb430
commit bd3df67542
13 changed files with 859 additions and 77 deletions

View File

@@ -1,33 +0,0 @@
SHELL := /bin/sh
# --- configurable ----------------------------------------------------
IMAGE_NAME = alpine-vm
IMAGE_SIZE ?= 1G
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) ..."
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 "git curl docker docker-cli-buildx docker-cli-compose cronie" \
$(IMAGE_FILE) \
$(CONFIGURE_SH)
@echo ">>> Image built: $(IMAGE_FILE)"
@ls -lh $(IMAGE_FILE)
.PHONY: build

39
image/build-image.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/bin/sh
IMAGE_NAME="${IMAGE_NAME:=alpine-vm}"
IMAGE_SIZE="${IMAGE_SIZE:-1G}"
IMAGE_FORMAT="${IMAGE_FORMAT:=raw}"
ALPINE_BRANCH="${ALPINE_BRANCH:=latest-stable}"
KERNEL_FLAVOR="${KERNEL_FLAVOR:=virt}"
IMAGE_FILE="vm.${IMAGE_FORMAT}"
SCRIPT_DIR="$PWD"
OVERLAY_DIR="${SCRIPT_DIR}/overlay"
CONFIGURE_SH="${SCRIPT_DIR}/configure.sh"
TMP=$(mktemp)
cleanup() {
rm $TMP
}
trap cleanup INT TERM EXIT
# We use BIOS here to skip creating partitions
alpine-make-vm-image \
--boot-mode "BIOS" \
--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 "git curl docker cronie" \
"$IMAGE_FILE" \
"$CONFIGURE_SH" | tee $TMP
if grep -q "ERROR" $TMP; then
echo "BUILD FAILED"
exit 114514
fi

View File

@@ -32,7 +32,6 @@ rc-update add net.eth0 default
rc-update add acpid default
rc-update add docker default
rc-update add cronie default
rc-update add mount boot
step 'Clean up APK cache and documents'
rm -rf /var/cache/apk/* || true
@@ -43,8 +42,8 @@ rm -rf \
/usr/share/info
step 'Setup git user'
git config --user.email bearnet+keeper@sab.ee
git config --user.name "B.B.K.K.B.K.K"
git config --global user.email bearnet+keeper@sab.ee
git config --global user.name "B.B.K.K.B.K.K"
adduser -S keeper
mkdir /users
chown keeper /users

View File

@@ -4,14 +4,12 @@
set -euo pipefail
mkdir -p /users && chown keeper /users && chmod 644 /users
su keeper
init_repo(){
git clone -b _REVISION_ _REPO_ /users
su - keeper 'git clone -b _REVISION_ _REPO_ /users'
}
if [[ ! -d /users/.git ]]; then
init_repo
elif [[ -d /users && cd /users && ! git pull origin _REVISION_ ]]; then
elif [[ -d /users && cd /users && ! su - keeper 'git pull origin _REVISION_' ]]; then
init_repo
fi