1
0
mirror of https://github.com/rancher/os.git synced 2025-09-03 15:54:24 +00:00

Build script changes

This commit is contained in:
Darren Shepherd
2015-02-19 11:26:59 -07:00
parent 7c17cc7825
commit 6e87ea3981
11 changed files with 62 additions and 26 deletions

View File

@@ -5,6 +5,6 @@ cd $(dirname $0)
export DOCKER_IMAGE=rancher-os-build
./scripts/ci
./scripts/ci "$@"
mkdir -p dist
docker run -it -e CHOWN_ID=$(id -u) -v $(pwd)/dist:/source/target $DOCKER_IMAGE

View File

@@ -7,9 +7,6 @@ cd $(dirname $0)/..
apt-get update
apt-get install -y curl rsync build-essential syslinux xorriso libblkid-dev libmount-dev libselinux1-dev
curl -sL https://github.com/ibuildthecloud/docker/releases/download/v1.5.0-rancher-2/docker-1.5.0 > /usr/bin/docker
chmod +x /usr/bin/docker
curl -sL https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz | tar xvzf - -C /usr/local
if [ ! -d /usr/local/go ]; then
curl -sL https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz | tar xvzf - -C /usr/local
fi

View File

@@ -73,6 +73,9 @@ run()
content="$content\nCOPY $1 /source/"
fi
;;
*)
break
;;
esac
shift 1
@@ -84,16 +87,20 @@ run()
fi
if [ -n "$1" ]; then
echo -e "\nCOPY $1 /source/$1" >> ${DOCKER_FILE}
echo -e "RUN /source/$1" >> ${DOCKER_FILE}
echo -e "RUN /source/"$@"" >> ${DOCKER_FILE}
fi
if [ "$RUN_EXEC" = "true" ]; then
$1
"$@"
fi
}
finish()
{
if [ "$RUN_EXEC" = "true" ]; then
return
fi
local cmd="docker build -t ${DOCKER_IMAGE} -f ${DOCKER_FILE} ."
echo Running $cmd
echo Pwd $(pwd)

View File

@@ -1,6 +1,8 @@
#!/bin/bash
set -e
VERSION=v0.0.1
cd $(dirname $0)/..
source scripts/build-common
@@ -10,7 +12,8 @@ mkdir -p ${BUILD}/initrd ${DIST}/artifacts
echo Extracting ${ARTIFACTS}/os-base.tar.xz
tar xJf ${ARTIFACTS}/os-base.tar.xz -C ${BUILD}
cp /etc/ssl/certs/ca-certificates.crt ${BUILD}/initrd/ca.crt
cp /etc/ssl/certs/ca-certificates.crt ${ARTIFACTS}/ca.crt
cp ${BUILD}/dist/rootfs.tar ${ARTIFACTS}
rm -rf ${BUILD}/initrd/lib
cp -rf ${BUILD}/dist/kernel/lib ${BUILD}/initrd
@@ -46,6 +49,7 @@ for i in scripts/dockerimages/[0-9]*; do
tag=$(echo $i | cut -f2 -d-)
echo Building $tag
docker build -t $tag -f $i .
docker build -t ${tag}:${VERSION} -f $i .
echo $tag >> ${BUILD}/tags
done

View File

@@ -4,7 +4,7 @@ set -e
cd $(dirname $0)/..
export DOCKER_IMAGE=${DOCKER_IMAGE:=rancher-os-build}
export DOCKER_BASE=rancher/docker-dind-base:latest
export DOCKER_BASE=rancher/dind:v0.1.0
source scripts/build-common
@@ -12,6 +12,11 @@ DOCKER_FILE=$(pwd)/.dockerfile
generate_images()
{
if [ "$RUN_EXEC" = "true" ]; then
./scripts/build-images
return
fi
IMAGE_ID=$(docker images --no-trunc -q ${DOCKER_IMAGE})
if [ -e ${BUILD}/${IMAGE_ID} ]; then
@@ -45,5 +50,5 @@ for i in $(ls -d * .* | sort -u | grep -Ev '(\.|\.\.|\.dockerfile|build|dist|.gi
fi
done
run --assets "${ARGS}" ./scripts/build
run --assets ./scripts/install ./scripts/package
run --assets ./scripts/install ./scripts/package "$@"
finish

View File

@@ -1,3 +1,23 @@
FROM scratch
ADD build/dist/rootfs.tar /
ADD assets/rootfs.tar /
# Cleanup Buildroot
RUN rm /sbin/poweroff /sbin/reboot /sbin/halt && \
sed -i '/^root/s!/bin/sh!/bin/bash!' /etc/passwd && \
echo -e 'RancherOS\n' > /etc/issue && \
rm /run \
/linuxrc \
/etc/os-release \
/var/cache \
/var/lock \
/var/log \
/var/run \
/var/spool \
/var/lib/misc && \
mkdir -p \
/run \
/var/cache \
/var/lock \
/var/log \
/var/run \
/var/spool
CMD ["/bin/sh"]

View File

@@ -1,6 +1,2 @@
FROM base
VOLUME /home
VOLUME /opt
VOLUME /var/lib/docker
VOLUME /var/run
CMD ["echo"]

View File

@@ -1,4 +1,4 @@
FROM base
COPY scripts/dockerimages/scripts/docker.sh /
COPY build/initrd/ca.crt /etc/ssl/certs/ca-certificates.crt
COPY assets/ca.crt /etc/ssl/certs/ca-certificates.crt
CMD ["/docker.sh"]

View File

@@ -1,6 +1,3 @@
FROM base
RUN rm /sbin/poweroff /sbin/reboot /sbin/halt
RUN sed -i '/^root/s!/bin/sh!/bin/bash!' /etc/passwd
RUN echo -e 'RancherOS\n' > /etc/issue
COPY scripts/dockerimages/scripts/console.sh /
CMD ["/console.sh"]
COPY scripts/dockerimages/scripts/console.sh /usr/sbin/
CMD ["/usr/sbin/console.sh"]

View File

@@ -10,7 +10,12 @@ cp scripts/dockerimages/scripts/os-dockerfile ${BUILD}/initrd/Dockerfile
cd ${BUILD}/initrd
find | cpio -H newc -o | lzma -c > ${DIST}/artifacts/initrd
if [ "--dev" = "$1" ]; then
find | cpio -H newc -o > ${DIST}/artifacts/initrd
cp ${DIST}/artifacts/initrd ${DIST}/artifacts/initrd.none
else
find | cpio -H newc -o | lzma -c > ${DIST}/artifacts/initrd
fi
CD=${BUILD}/cd

View File

@@ -10,6 +10,7 @@ BASE=$(pwd)
KERNEL=${BASE}/dist/artifacts/vmlinuz
INITRD=${BASE}/dist/artifacts/initrd
NO_COMPRESS_INITRD=${INITRD}.none
HD=${BASE}/build/empty-hd.img
HD_GZ=${ARTIFACTS}/empty-hd.img.gz
INITRD_TMP=${BUILD}/$(sha1sum ${INITRD} | awk '{print $1}')
@@ -23,7 +24,11 @@ fi
if [ ! -d ${INITRD_TMP} ]; then
mkdir -p ${INITRD_TMP}
pushd ${INITRD_TMP}
lzma -dc ${INITRD} | sudo cpio -idmv
if [ -e ${NO_COMPRESS_INITRD} ]; then
cat ${NO_COMPRESS_INITRD} | sudo cpio -idmv
else
xz -dc ${INITRD} | sudo cpio -idmv
fi
rm -f init
popd
fi
@@ -41,6 +46,6 @@ else
zcat ${HD_GZ} > ${HD}
fi
qemu-system-x86_64 -serial stdio -kernel ${KERNEL} -initrd ${INITRD_TEST} -m 1024 -net nic,vlan=0,model=virtio -net user,vlan=0,hostfwd=tcp::2222-:22,hostname=rancher -drive if=virtio,file=${HD} -machine accel=kvm -cpu host -smp 4 -append "console=ttyS0 $@"
qemu-system-x86_64 -serial stdio -kernel ${KERNEL} -initrd ${INITRD_TEST} -m 1024 -net nic,vlan=0,model=virtio -net user,vlan=0,hostfwd=tcp::2222-:22,hostname=rancher -drive if=virtio,file=${HD} -machine accel=kvm -cpu host -smp 4 -append "x $@" ${QEMU_ARGS}
fi