mirror of
https://github.com/rancher/os.git
synced 2025-06-26 23:06:51 +00:00
80 lines
2.4 KiB
Docker
80 lines
2.4 KiB
Docker
|
|
||
|
DOCKER_BINARY_URL := https://github.com/rancher/docker/releases/download/v1.7.1-ros-1/docker-1.7.1
|
||
|
|
||
|
include common.make
|
||
|
|
||
|
|
||
|
bin/rancheros: bin
|
||
|
godep go build -tags netgo -ldflags "-X github.com/rancherio/os/config.VERSION $(VERSION) -linkmode external -extldflags -static" -o $@
|
||
|
strip --strip-all $@
|
||
|
|
||
|
|
||
|
pwd := $(shell pwd)
|
||
|
include scripts/build-common
|
||
|
CD := $(BUILD)/cd
|
||
|
|
||
|
assets bin $(DIST)/artifacts $(CD)/boot/isolinux:
|
||
|
mkdir -p $@
|
||
|
|
||
|
|
||
|
DOCKER_BINARY := $(shell basename $(DOCKER_BINARY_URL))
|
||
|
|
||
|
assets/$(DOCKER_BINARY): assets
|
||
|
cd assets && curl -OL "$(DOCKER_BINARY_URL)"
|
||
|
|
||
|
assets/docker: assets/$(DOCKER_BINARY)
|
||
|
mv assets/$(DOCKER_BINARY) $@
|
||
|
chmod +x $@
|
||
|
|
||
|
copy-images:
|
||
|
./scripts/copy-images
|
||
|
|
||
|
$(DIST)/artifacts/vmlinuz: $(DIST)/artifacts copy-images
|
||
|
mv $(BUILD)/kernel/vmlinuz $@
|
||
|
|
||
|
|
||
|
INITRD_DIR := $(BUILD)/initrd
|
||
|
|
||
|
$(INITRD_DIR)/images.tar: bin/rancheros
|
||
|
ln -sf bin/rancheros ./ros
|
||
|
for i in `./ros c images -i os-config.yml`; do [ "$(FORCE_PULL)" != "1" ] && docker inspect $$i >/dev/null 2>&1 || docker pull $$i; done
|
||
|
docker save `./ros c images -i os-config.yml` > $@
|
||
|
|
||
|
|
||
|
$(DIST)/artifacts/initrd: $(DIST)/artifacts bin/rancheros assets/docker copy-images $(INITRD_DIR)/images.tar
|
||
|
mv $(BUILD)/kernel/lib $(INITRD_DIR)
|
||
|
mv assets/docker $(INITRD_DIR)
|
||
|
cp os-config.yml $(INITRD_DIR)
|
||
|
cp bin/rancheros $(INITRD_DIR)/init
|
||
|
cd $(INITRD_DIR) && find | cpio -H newc -o | lzma -c > $@
|
||
|
|
||
|
$(DIST)/artifacts/rancheros.iso: $(DIST)/artifacts/initrd $(CD)/boot/isolinux
|
||
|
cp $(DIST)/artifacts/initrd $(CD)/boot
|
||
|
cp $(DIST)/artifacts/vmlinuz $(CD)/boot
|
||
|
cp scripts/isolinux.cfg $(CD)/boot/isolinux
|
||
|
cp /usr/lib/ISOLINUX/isolinux.bin $(CD)/boot/isolinux
|
||
|
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 $(CD)/boot/isolinux
|
||
|
cd $(CD) && xorriso -publisher "Rancher Labs, Inc." \
|
||
|
-as mkisofs \
|
||
|
-l -J -R -V "RancherOS" \
|
||
|
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||
|
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
|
||
|
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
|
||
|
-o $@ $(CD)
|
||
|
|
||
|
$(DIST)/artifacts/iso-checksums.txt: $(DIST)/artifacts/rancheros.iso
|
||
|
cd $(DIST)/artifacts && for algo in 'sha256' 'md5'; do echo "$$algo: `$${algo}sum rancheros.iso`" >> $@; done
|
||
|
|
||
|
version:
|
||
|
@echo $(VERSION)
|
||
|
|
||
|
build-all: \
|
||
|
bin/rancheros \
|
||
|
$(DIST)/artifacts/initrd \
|
||
|
$(DIST)/artifacts/vmlinuz \
|
||
|
$(DIST)/artifacts/rancheros.iso \
|
||
|
$(DIST)/artifacts/iso-checksums.txt
|
||
|
|
||
|
|
||
|
.PHONY: build-all version copy-images
|