1
0
mirror of https://github.com/rancher/os.git synced 2025-08-31 22:32:14 +00:00

custom kernel and docker-from-scratch

This commit is contained in:
Ivan Mikushin
2015-08-07 19:34:05 +05:00
parent 1d45f2fb9a
commit 414eec85c6
4 changed files with 24 additions and 23 deletions

View File

@@ -1,49 +1,45 @@
DOCKER_BINARY_URL := https://github.com/rancher/docker/releases/download/v1.8.0-rc2-ros/docker-1.8.0-rc2
include common.make
DOCKER_BINARY_URL := https://github.com/rancher/docker/releases/download/v1.8.0-rc2-ros/docker-1.8.0-rc2
KERNEL_URL := https://github.com/rancher/os-kernel/releases/download/Ubuntu-3.19.0-26.27/linux-3.19.8-ckt4-rancher-x86.tar.gz
DFS_IMAGE := rancher/docker:1.8.0-rc2
bin/rancheros:
mkdir -p bin
mkdir -p $(dir $@)
godep go build -tags netgo -installsuffix 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/docker:
mkdir -p assets
mkdir -p $(dir $@)
curl -L "$(DOCKER_BINARY_URL)" > $@
chmod +x $@
copy-images:
./scripts/copy-images
$(DIST)/artifacts/vmlinuz: $(BUILD)/kernel/
mkdir -p $(dir $@)
mv $(BUILD)/kernel/boot/vmlinuz* $@
$(DIST)/artifacts/vmlinuz: copy-images
mkdir -p $(DIST)/artifacts
mv $(BUILD)/kernel/vmlinuz $@
$(BUILD)/kernel/:
mkdir -p $@ && curl -L "$(KERNEL_URL)" | tar -xzf - -C $@ --strip=0
INITRD_DIR := $(BUILD)/initrd
$(BUILD)/images.tar: bin/rancheros
FORCE_PULL=$(FORCE_PULL) ./scripts/mk-images-tar.sh
$(BUILD)/images.tar: bin/rancheros os-config.yml
FORCE_PULL=$(FORCE_PULL) BUILD=$(BUILD) ./scripts/mk-images-tar.sh
$(DIST)/artifacts/initrd: bin/rancheros assets/docker $(BUILD)/kernel/ $(BUILD)/images.tar
mkdir -p $(dir $@)
DFS_IMAGE=$(DFS_IMAGE) ./scripts/mk-initrd.sh
$(DIST)/artifacts/initrd: bin/rancheros assets/docker copy-images $(BUILD)/images.tar
mkdir -p $(DIST)/artifacts
INITRD_DIR=$(INITRD_DIR) ./scripts/mk-initrd.sh
$(DIST)/artifacts/rancheros.iso: $(DIST)/artifacts/initrd
CD=$(CD) ./scripts/mk-rancheros-iso.sh
$(DIST)/artifacts/rancheros.iso: $(DIST)/artifacts/initrd $(DIST)/artifacts/vmlinuz
./scripts/mk-rancheros-iso.sh
$(DIST)/artifacts/iso-checksums.txt: $(DIST)/artifacts/rancheros.iso
@@ -62,4 +58,4 @@ build-all: \
$(DIST)/artifacts/iso-checksums.txt
.PHONY: build-all version copy-images os-config.yml
.PHONY: build-all version

View File

@@ -2,6 +2,7 @@
set -ex
cd $(dirname $0)/..
. scripts/build-common
ln -sf bin/rancheros ./ros

View File

@@ -4,6 +4,8 @@ set -ex
cd $(dirname $0)/..
. scripts/build-common
INITRD_DIR=${BUILD}/initrd
rm -rf ${INITRD_DIR}/{usr,init}
mkdir -p ${INITRD_DIR}/usr/{bin,share/ros}
@@ -15,7 +17,7 @@ cp bin/rancheros ${INITRD_DIR}/usr/bin/ros
ln -s usr/bin/ros ${INITRD_DIR}/init
ln -s bin ${INITRD_DIR}/usr/sbin
DFS=$(docker create rancher/docker:1.8.0-rc2)
DFS=$(docker create ${DFS_IMAGE})
trap "docker rm -fv ${DFS}" EXIT
docker export ${DFS} | tar xvf - -C ${INITRD_DIR} --exclude=usr/bin/dockerlaunch \
--exclude=usr/bin/docker \

View File

@@ -4,6 +4,8 @@ set -ex
cd $(dirname $0)/..
. scripts/build-common
CD=${BUILD}/cd
mkdir -p ${CD}/boot/isolinux
cp ${DIST}/artifacts/initrd ${CD}/boot