mirror of
https://github.com/rancher/os.git
synced 2025-09-04 08:14:21 +00:00
Update build for docker-from-scratch
This commit is contained in:
@@ -7,4 +7,5 @@ tmp
|
|||||||
state
|
state
|
||||||
build
|
build
|
||||||
dist
|
dist
|
||||||
|
assets
|
||||||
Godeps/_workspace/pkg
|
Godeps/_workspace/pkg
|
||||||
|
@@ -18,9 +18,6 @@ RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1
|
|||||||
ENV GOROOT /usr/src/go
|
ENV GOROOT /usr/src/go
|
||||||
ENV PATH $GOROOT/bin:$PATH
|
ENV PATH $GOROOT/bin:$PATH
|
||||||
|
|
||||||
RUN go clean -i net
|
|
||||||
RUN go install -tags netgo std
|
|
||||||
|
|
||||||
RUN mkdir -p /go/src /go/bin && chmod -R 777 /go
|
RUN mkdir -p /go/src /go/bin && chmod -R 777 /go
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
ENV PATH /go/bin:$PATH
|
ENV PATH /go/bin:$PATH
|
||||||
|
3
Makefile
3
Makefile
@@ -1,15 +1,16 @@
|
|||||||
|
|
||||||
include common.make
|
include common.make
|
||||||
|
|
||||||
|
|
||||||
compile: bin/rancheros
|
compile: bin/rancheros
|
||||||
|
|
||||||
|
|
||||||
all: clean ros-build-base build-all
|
all: clean ros-build-base build-all
|
||||||
|
|
||||||
|
|
||||||
ros-build-base:
|
ros-build-base:
|
||||||
docker build -t ros-build-base -f Dockerfile.base .
|
docker build -t ros-build-base -f Dockerfile.base .
|
||||||
|
|
||||||
|
|
||||||
ros-build-image:
|
ros-build-image:
|
||||||
docker build -t ros-build .
|
docker build -t ros-build .
|
||||||
|
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
|
|
||||||
DOCKER_BINARY_URL := https://github.com/rancher/docker/releases/download/v1.7.1-ros-1/docker-1.7.1
|
DOCKER_BINARY_URL := https://github.com/rancher/docker/releases/download/v1.8.0-rc2-ros/docker-1.8.0-rc2
|
||||||
|
|
||||||
include common.make
|
include common.make
|
||||||
|
|
||||||
|
|
||||||
bin/rancheros: bin
|
bin/rancheros:
|
||||||
godep go build -tags netgo -ldflags "-X github.com/rancherio/os/config.VERSION $(VERSION) -linkmode external -extldflags -static" -o $@
|
mkdir -p bin
|
||||||
|
godep go build -tags netgo -installsuffix netgo -ldflags "-X github.com/rancherio/os/config.VERSION $(VERSION) -linkmode external -extldflags -static" -o $@
|
||||||
strip --strip-all $@
|
strip --strip-all $@
|
||||||
|
|
||||||
|
|
||||||
@@ -13,44 +14,46 @@ pwd := $(shell pwd)
|
|||||||
include scripts/build-common
|
include scripts/build-common
|
||||||
CD := $(BUILD)/cd
|
CD := $(BUILD)/cd
|
||||||
|
|
||||||
assets bin $(DIST)/artifacts $(CD)/boot/isolinux:
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
|
assets/docker:
|
||||||
DOCKER_BINARY := $(shell basename $(DOCKER_BINARY_URL))
|
mkdir -p assets
|
||||||
|
curl -L "$(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 $@
|
chmod +x $@
|
||||||
|
|
||||||
|
|
||||||
copy-images:
|
copy-images:
|
||||||
./scripts/copy-images
|
./scripts/copy-images
|
||||||
|
|
||||||
$(DIST)/artifacts/vmlinuz: $(DIST)/artifacts copy-images
|
|
||||||
|
$(DIST)/artifacts/vmlinuz: copy-images
|
||||||
|
mkdir -p $(DIST)/artifacts
|
||||||
mv $(BUILD)/kernel/vmlinuz $@
|
mv $(BUILD)/kernel/vmlinuz $@
|
||||||
|
|
||||||
|
|
||||||
INITRD_DIR := $(BUILD)/initrd
|
INITRD_DIR := $(BUILD)/initrd
|
||||||
|
|
||||||
$(INITRD_DIR)/images.tar: bin/rancheros
|
|
||||||
FORCE_PULL=$(FORCE_PULL) INITRD_DIR=$(INITRD_DIR) ./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: $(DIST)/artifacts bin/rancheros assets/docker copy-images $(INITRD_DIR)/images.tar
|
$(DIST)/artifacts/initrd: bin/rancheros assets/docker copy-images $(BUILD)/images.tar
|
||||||
|
mkdir -p $(DIST)/artifacts
|
||||||
INITRD_DIR=$(INITRD_DIR) ./scripts/mk-initrd.sh
|
INITRD_DIR=$(INITRD_DIR) ./scripts/mk-initrd.sh
|
||||||
|
|
||||||
$(DIST)/artifacts/rancheros.iso: $(DIST)/artifacts/initrd $(CD)/boot/isolinux
|
|
||||||
|
$(DIST)/artifacts/rancheros.iso: $(DIST)/artifacts/initrd
|
||||||
CD=$(CD) ./scripts/mk-rancheros-iso.sh
|
CD=$(CD) ./scripts/mk-rancheros-iso.sh
|
||||||
|
|
||||||
|
|
||||||
$(DIST)/artifacts/iso-checksums.txt: $(DIST)/artifacts/rancheros.iso
|
$(DIST)/artifacts/iso-checksums.txt: $(DIST)/artifacts/rancheros.iso
|
||||||
./scripts/mk-iso-checksums-txt.sh
|
./scripts/mk-iso-checksums-txt.sh
|
||||||
|
|
||||||
|
|
||||||
version:
|
version:
|
||||||
@echo $(VERSION)
|
@echo $(VERSION)
|
||||||
|
|
||||||
|
|
||||||
build-all: \
|
build-all: \
|
||||||
bin/rancheros \
|
bin/rancheros \
|
||||||
$(DIST)/artifacts/initrd \
|
$(DIST)/artifacts/initrd \
|
||||||
@@ -59,4 +62,4 @@ build-all: \
|
|||||||
$(DIST)/artifacts/iso-checksums.txt
|
$(DIST)/artifacts/iso-checksums.txt
|
||||||
|
|
||||||
|
|
||||||
.PHONY: build-all version copy-images
|
.PHONY: build-all version copy-images os-config.yml
|
||||||
|
@@ -10,18 +10,10 @@ VERSION=${VERSION:?"VERSION not set"}
|
|||||||
BUILD=${BUILD:?"BUILD not set"}
|
BUILD=${BUILD:?"BUILD not set"}
|
||||||
|
|
||||||
|
|
||||||
CONTAINER_INITRDBASE=$(docker create rancher/os-initrdbase:${VERSION})
|
|
||||||
cleanup_initrdbase() {
|
|
||||||
docker rm -v ${CONTAINER_INITRDBASE}
|
|
||||||
}
|
|
||||||
trap cleanup_initrdbase EXIT
|
|
||||||
docker cp ${CONTAINER_INITRDBASE}:/initrd ${BUILD} # copies files to ${BUILD}/initrd
|
|
||||||
|
|
||||||
|
|
||||||
CONTAINER_KERNEL=$(docker create rancher/os-kernel:${VERSION})
|
CONTAINER_KERNEL=$(docker create rancher/os-kernel:${VERSION})
|
||||||
cleanup_kernel() {
|
cleanup_kernel() {
|
||||||
cleanup_initrdbase
|
|
||||||
docker rm -v ${CONTAINER_KERNEL}
|
docker rm -v ${CONTAINER_KERNEL}
|
||||||
}
|
}
|
||||||
trap cleanup_kernel EXIT
|
trap cleanup_kernel EXIT
|
||||||
|
|
||||||
docker cp ${CONTAINER_KERNEL}:/kernel ${BUILD} # copies files to ${BUILD}/kernel
|
docker cp ${CONTAINER_KERNEL}:/kernel ${BUILD} # copies files to ${BUILD}/kernel
|
||||||
|
@@ -1,5 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
docker rm -fv ros-build > /dev/null 2>&1 || :
|
DOCKER_ARGS=
|
||||||
exec docker run -v /var/run/docker.sock:/var/run/docker.sock --name=ros-build ros-build "$@"
|
if [ -n "$BIND_DIR" ]; then
|
||||||
|
if [ "$BIND_DIR" = "." ]; then
|
||||||
|
BIND_DIR=$(pwd)
|
||||||
|
fi
|
||||||
|
DOCKER_ARGS="-t -v $BIND_DIR:/go/src/github.com/rancherio/os"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker rm -fv ros-build >/dev/null 2>&1 || true
|
||||||
|
exec docker run -i -v /var/run/docker.sock:/var/run/docker.sock $DOCKER_ARGS --name=ros-build ros-build "$@"
|
||||||
|
@@ -9,4 +9,4 @@ for i in `./ros c images -i os-config.yml`; do
|
|||||||
[ "${FORCE_PULL}" != "1" ] && docker inspect $i >/dev/null 2>&1 || docker pull $i;
|
[ "${FORCE_PULL}" != "1" ] && docker inspect $i >/dev/null 2>&1 || docker pull $i;
|
||||||
done
|
done
|
||||||
|
|
||||||
docker save `./ros c images -i os-config.yml` > ${INITRD_DIR}/images.tar
|
docker save `./ros c images -i os-config.yml` > ${BUILD}/images.tar
|
||||||
|
@@ -4,8 +4,22 @@ set -ex
|
|||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
. scripts/build-common
|
. scripts/build-common
|
||||||
|
|
||||||
mv ${BUILD}/kernel/lib ${INITRD_DIR}
|
rm -rf ${INITRD_DIR}/{usr,init}
|
||||||
mv assets/docker ${INITRD_DIR}
|
mkdir -p ${INITRD_DIR}/usr/{bin,share/ros}
|
||||||
cp os-config.yml ${INITRD_DIR}
|
|
||||||
cp bin/rancheros ${INITRD_DIR}/init
|
cp -rf ${BUILD}/kernel/lib ${INITRD_DIR}/usr
|
||||||
|
cp assets/docker ${INITRD_DIR}/usr/bin/docker
|
||||||
|
cp ${BUILD}/images.tar ${INITRD_DIR}/usr/share/ros
|
||||||
|
cp os-config.yml ${INITRD_DIR}/usr/share/ros/
|
||||||
|
cp bin/rancheros ${INITRD_DIR}/usr/bin/ros
|
||||||
|
ln -s usr/bin/ros ${INITRD_DIR}/init
|
||||||
|
|
||||||
|
docker export $(docker create rancher/docker:1.8.0-rc2) | tar xvf - -C ${INITRD_DIR} --exclude=usr/bin/dockerlaunch \
|
||||||
|
--exclude=usr/bin/docker \
|
||||||
|
--exclude=usr/share/git-core \
|
||||||
|
--exclude=usr/bin/git \
|
||||||
|
--exclude=usr/bin/ssh \
|
||||||
|
--exclude=usr/libexec/git-core \
|
||||||
|
usr
|
||||||
|
|
||||||
cd ${INITRD_DIR} && find | cpio -H newc -o | lzma -c > ${DIST}/artifacts/initrd
|
cd ${INITRD_DIR} && find | cpio -H newc -o | lzma -c > ${DIST}/artifacts/initrd
|
||||||
|
@@ -4,6 +4,8 @@ set -ex
|
|||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
. scripts/build-common
|
. scripts/build-common
|
||||||
|
|
||||||
|
mkdir -p ${CD}/boot/isolinux
|
||||||
|
|
||||||
cp ${DIST}/artifacts/initrd ${CD}/boot
|
cp ${DIST}/artifacts/initrd ${CD}/boot
|
||||||
cp ${DIST}/artifacts/vmlinuz ${CD}/boot
|
cp ${DIST}/artifacts/vmlinuz ${CD}/boot
|
||||||
cp scripts/isolinux.cfg ${CD}/boot/isolinux
|
cp scripts/isolinux.cfg ${CD}/boot/isolinux
|
||||||
|
@@ -60,7 +60,6 @@ if [ ! -d ${INITRD_TMP} ]; then
|
|||||||
else
|
else
|
||||||
xz -dc ${INITRD} | cpio -idmv
|
xz -dc ${INITRD} | cpio -idmv
|
||||||
fi
|
fi
|
||||||
rm -f init
|
|
||||||
popd
|
popd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user