-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMakefile
49 lines (42 loc) · 1.41 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
init:
packer init .
build-container:
packer build vc.pkr.hcl
run-container:
docker compose run domcloud
build-rocky-gtk:
QEMU_DISPLAY=gtk OS=rocky sh ./imgprep.sh
build-rocky-cocoa:
QEMU_DISPLAY=cocoa OS=rocky sh ./imgprep.sh
build-ubuntu-gtk:
QEMU_DISPLAY=gtk OS=ubuntu sh ./imgprep.sh
build-ubuntu-cocoa:
QEMU_DISPLAY=cocoa OS=ubuntu sh ./imgprep.sh
build-image:
docker build -t image-build .
docker run --privileged \
-v "./output:/app/output" \
image-build
UNAME_M := $(shell uname -m)
OUTPUT_DIR := output/image-$(UNAME_M)
VMDK_FILE := $(OUTPUT_DIR)/domcloud-$(UNAME_M).vmdk
QCOW2_FILE := $(OUTPUT_DIR)/domcloud-$(UNAME_M).qcow2
PACKER_FILE := $(OUTPUT_DIR)/packer-rocky_linux
CHECKSUM_FILE := $(OUTPUT_DIR)/checksums.txt
convert-image: $(VMDK_FILE) $(QCOW2_FILE) $(CHECKSUM_FILE)
$(VMDK_FILE): $(PACKER_FILE)
# Optimized ESXi 6.0 Compatible VMDK
docker run --privileged \
-v "./output:/app/output" \
-it image-build qemu-img convert \
-f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 \
$(PACKER_FILE) $(VMDK_FILE)
$(QCOW2_FILE): $(PACKER_FILE)
# Optimized QCOW2 (Shrunk by ~1.5 GB)
docker run --privileged \
-v "./output:/app/output" \
-e LIBGUESTFS_DEBUG=1 -e LIBGUESTFS_TRACE=1 -it image-build virt-sparsify \
$(PACKER_FILE) $(QCOW2_FILE)
$(CHECKSUM_FILE): $(VMDK_FILE) $(QCOW2_FILE)
# Generate checksum
cd $(OUTPUT_DIR) && find . -type f -exec sha256sum {} \; > checksums.txt