diff --git a/hack/empty-image.sh b/hack/empty-image.sh new file mode 100755 index 0000000000000..cb6721ef73cd6 --- /dev/null +++ b/hack/empty-image.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +IMG=empty-image:latest + +fail(){ + rm -rf $WORK_DIR + exit 1 +} + +usage(){ + echo "Usage: empty-image.sh [options]" + echo " Options:" + echo " -h Show help messages" + echo " -t Specify the empty image name: ''" + echo " String format is the same with docker" + echo " " + echo " This tool is used to build empty images for docker" +} +while getopts "ht:" arg +do + case $arg in + h) + usage + shift + exit 0 + ;; + t) + IMG=$OPTARG + shift 2 + ;; + ?) + echo "unkonw argument" + usage + shift + exit 1 + ;; + esac +done + +# unhandled parameter +if [ $# -gt 0 ]; then + usage + exit 1 +fi + +WORK_DIR=`mktemp -d` +Dockerfile="$WORK_DIR/dockerfile" + +cat > $Dockerfile << EOF +FROM scratch +ENV container docker +STOPSIGNAL SIGRTMIN+3 +CMD [ "/sbin/init" ] +EOF + +docker build --force-rm -t $IMG -f $Dockerfile $WORK_DIR || fail +rm -rf $WORK_DIR + +echo "Empty Image [$IMG] is generated successfully" diff --git a/hack/make/.build-rpm/docker-engine-euleros.spec b/hack/make/.build-rpm/docker-engine-euleros.spec index 7936ba6164a14..4f8018f534ead 100644 --- a/hack/make/.build-rpm/docker-engine-euleros.spec +++ b/hack/make/.build-rpm/docker-engine-euleros.spec @@ -196,6 +196,9 @@ install -p -m 644 contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/s install -d $RPM_BUILD_ROOT/usr/share/nano install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc +# install empty image tool +install -p -m 750 hack/empty-image.sh $RPM_BUILD_ROOT/%{_bindir}/empty-image.sh + # list files owned by the package here %files %doc AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md @@ -204,6 +207,7 @@ install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/shar /%{_bindir}/docker-containerd-shim /%{_bindir}/docker-containerd-ctr /%{_bindir}/docker-runc +/%{_bindir}/empty-image.sh /%{_sysconfdir}/udev/rules.d/80-docker.rules %if 0%{?is_systemd} /%{_unitdir}/docker.service diff --git a/hack/make/.build-rpm/docker-engine.spec b/hack/make/.build-rpm/docker-engine.spec index 8b1ebbf654ba8..134518a3fb5a8 100644 --- a/hack/make/.build-rpm/docker-engine.spec +++ b/hack/make/.build-rpm/docker-engine.spec @@ -175,6 +175,9 @@ install -p -m 644 contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/s install -d $RPM_BUILD_ROOT/usr/share/nano install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc +# install empty image tool +install -p -m 750 hack/empty-image.sh $RPM_BUILD_ROOT/%{_bindir}/empty-image.sh + # list files owned by the package here %files %doc AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md @@ -183,6 +186,7 @@ install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/shar /%{_bindir}/docker-containerd-shim /%{_bindir}/docker-containerd-ctr /%{_bindir}/docker-runc +/%{_bindir}/empty-image.sh /%{_sysconfdir}/udev/rules.d/80-docker.rules %if 0%{?is_systemd} /%{_unitdir}/docker.service