mirror of
https://github.com/clearlinux/rkt.git
synced 2026-08-19 13:36:39 +00:00
98e78d5f08
Stage1 GC entrypoint is called as part of "rkt gc", prior to recursively removing the pod directory. This give the stage1 to do any necessary cleanup.
79 lines
2.0 KiB
Python
Executable File
79 lines
2.0 KiB
Python
Executable File
#!/bin/bash -eu
|
|
|
|
ORG_PATH="github.com/coreos"
|
|
REPO_PATH="${ORG_PATH}/rkt"
|
|
|
|
if [ ! -h gopath/src/${REPO_PATH} ]; then
|
|
mkdir -p gopath/src/${ORG_PATH}
|
|
ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255
|
|
fi
|
|
|
|
export GOBIN=${PWD}/bin
|
|
export GOPATH=${PWD}/gopath
|
|
|
|
eval $(go env)
|
|
|
|
# set default stage1 usr style and validate potential override
|
|
RKT_STAGE1_USR_FROM="${RKT_STAGE1_USR_FROM:-coreos}"
|
|
case "${RKT_STAGE1_USR_FROM}" in
|
|
coreos|src)
|
|
;;
|
|
*)
|
|
echo "RKT_STAGE1_USR_FROM=${RKT_STAGE1_USR_FROM} unsupported"
|
|
exit 255
|
|
esac
|
|
export RKT_STAGE1_USR_FROM
|
|
|
|
echo "Building rkt (stage0)..."
|
|
go build -o ${GOBIN}/rkt \
|
|
${RKT_STAGE1_IMAGE:+-ldflags "-X main.defaultStage1Image '${RKT_STAGE1_IMAGE}'"} \
|
|
${REPO_PATH}/rkt
|
|
|
|
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
|
echo "Building network plugins..."
|
|
for d in networking/net/* networking/ipam/*; do
|
|
if [ -d $d ]; then
|
|
plugin=$(basename $d)
|
|
echo " " $plugin
|
|
go install ${REPO_PATH}/$d
|
|
fi
|
|
done
|
|
|
|
echo "Building actool..."
|
|
go build -o ${GOBIN}/actool github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/spec/actool
|
|
export ACTOOL=${GOBIN}/actool
|
|
|
|
echo "Building init (stage1)..."
|
|
go install ${REPO_PATH}/stage1/init
|
|
|
|
echo "Building gc (stage1)..."
|
|
go install ${REPO_PATH}/stage1/gc
|
|
|
|
# symlink plugin binaries into stage1 rootfs
|
|
mkdir -p stage1/rootfs/net-plugins/bin
|
|
# make sure the bin dir doesn't have old links
|
|
rm -f stage1/rootfs/net-plugins/bin/*
|
|
for d in networking/net/* networking/ipam/*; do
|
|
if [ -d $d ]; then
|
|
plugin=$(basename $d)
|
|
ln -sf ${GOBIN}/$plugin stage1/rootfs/net-plugins/bin
|
|
fi
|
|
done
|
|
|
|
# symlink init into stage1 rootfs
|
|
mkdir -p stage1/rootfs/init/bin
|
|
ln -sf ${GOBIN}/init stage1/rootfs/init/bin
|
|
|
|
# symlink gc into stage1 rootfs
|
|
mkdir -p stage1/rootfs/gc/bin
|
|
ln -sf ${GOBIN}/gc stage1/rootfs/gc/bin
|
|
|
|
JOBS=1
|
|
which lscpu >&/dev/null && JOBS=$(lscpu --parse=CPU | grep -c ^[^#])
|
|
echo "Building rootfs (stage1) using ${JOBS} CPUs..."
|
|
make -C stage1/rootfs -j ${JOBS}
|
|
fi
|
|
|
|
echo "Building functional tests..."
|
|
(cd tests && ./build)
|