reason: when mirror is matched, only matched mirror endpoint is added to endpoint list, but the hostname itself is not in the list, which is not compatible with the case of docker.io, docker.io will be appended to the last of the endpoint list.
233 lines
7.8 KiB
RPMSpec
233 lines
7.8 KiB
RPMSpec
Name: docker-engine
|
|
Version: 18.09.0
|
|
Release: 110
|
|
Summary: The open-source application container engine
|
|
Group: Tools/Docker
|
|
|
|
License: ASL 2.0
|
|
Source0: https://github.com/docker/docker-ce/archive/v18.09.0.tar.gz
|
|
Source1: patch.tar.gz
|
|
Source2: apply-patches
|
|
Source3: git-commit
|
|
Source4: series.conf
|
|
Source5: VERSION-openeuler
|
|
Source6: gen-commit.sh
|
|
|
|
URL: https://mobyproject.org
|
|
|
|
%global is_systemd 1
|
|
%global debug_package %{nil}
|
|
|
|
# required packages for build
|
|
# most are already in the container (see contrib/builder/rpm/ARCH/generate.sh)
|
|
BuildRequires: pkgconfig(systemd) golang >= 1.8.3 go-md2man btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel
|
|
BuildRequires: libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel
|
|
BuildRequires: tar containerd docker-runc docker-proxy
|
|
|
|
# required packages on install
|
|
Requires: /bin/sh iptables libcgroup tar xz device-mapper-libs >= 1.02.90-1 systemd-units
|
|
|
|
# conflicting packages
|
|
Provides: docker
|
|
Conflicts: docker-io
|
|
Conflicts: docker-engine-cs
|
|
|
|
%description
|
|
Docker is an open source project to build, ship and run any application as a
|
|
lightweight container.
|
|
|
|
Docker containers are both hardware-agnostic and platform-agnostic. This means
|
|
they can run anywhere, from your laptop to the largest EC2 compute instance and
|
|
everything in between - and they don't require you to use a particular
|
|
language, framework or packaging system. That makes them great building blocks
|
|
for deploying and scaling web apps, databases, and backend services without
|
|
depending on a particular stack or provider.
|
|
|
|
%prep
|
|
cp %{SOURCE0} .
|
|
cp %{SOURCE1} .
|
|
cp %{SOURCE2} .
|
|
cp %{SOURCE3} .
|
|
cp %{SOURCE4} .
|
|
cp %{SOURCE5} .
|
|
|
|
%build
|
|
|
|
sh ./apply-patches
|
|
|
|
# build docker engine
|
|
WORKDIR=$(pwd)
|
|
export VERSION=$(cat VERSION)
|
|
export DOCKER_GITCOMMIT=$(cat git-commit | head -c 7)
|
|
export AUTO_GOPATH=1
|
|
export DOCKER_BUILDTAGS="pkcs11 seccomp selinux"
|
|
cd ${WORKDIR}/components/engine
|
|
./hack/make.sh dynbinary
|
|
|
|
# buid docker cli
|
|
cd ${WORKDIR}/components/cli
|
|
mkdir -p .gopath/src/github.com/docker
|
|
export GOPATH=`pwd`/.gopath
|
|
ln -sf `pwd` .gopath/src/github.com/docker/cli
|
|
ln -sf ${WORKDIR}/components/engine .gopath/src/github.com/docker/docker
|
|
cd .gopath/src/github.com/docker/cli
|
|
make dynbinary
|
|
|
|
# ./man/md2man-all.sh runs outside the build container (if at all), since we don't have go-md2man here
|
|
./man/md2man-all.sh -q
|
|
|
|
rm -rf .gopath
|
|
cd ${WORKDIR}
|
|
|
|
%check
|
|
./components/engine/bundles/dynbinary-daemon/dockerd -v
|
|
./components/cli/build/docker -v
|
|
|
|
%install
|
|
# install binary
|
|
install -d $RPM_BUILD_ROOT/%{_bindir}
|
|
install -p -m 755 components/engine/bundles/dynbinary-daemon/dockerd $RPM_BUILD_ROOT/%{_bindir}/dockerd
|
|
|
|
# install cli
|
|
install -p -m 755 components/cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker
|
|
|
|
# install proxy
|
|
install -p -m 755 /usr/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy
|
|
|
|
# install containerd
|
|
install -p -m 755 /usr/bin/containerd $RPM_BUILD_ROOT/%{_bindir}/containerd
|
|
install -p -m 755 /usr/bin/containerd-shim $RPM_BUILD_ROOT/%{_bindir}/containerd-shim
|
|
|
|
# install runc
|
|
install -p -m 755 /usr/local/bin/runc $RPM_BUILD_ROOT/%{_bindir}/runc
|
|
|
|
# install udev rules
|
|
install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d
|
|
install -p -m 644 components/engine/contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules
|
|
|
|
# add init scripts
|
|
install -d $RPM_BUILD_ROOT/etc/sysconfig
|
|
install -d $RPM_BUILD_ROOT/%{_initddir}
|
|
install -p -m 644 components/engine/contrib/init/sysvinit-redhat/docker.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/docker
|
|
install -p -m 644 components/engine/contrib/init/sysvinit-redhat/docker-network $RPM_BUILD_ROOT/etc/sysconfig/docker-network
|
|
install -p -m 644 components/engine/contrib/init/sysvinit-redhat/docker-storage $RPM_BUILD_ROOT/etc/sysconfig/docker-storage
|
|
|
|
install -d $RPM_BUILD_ROOT/%{_unitdir}
|
|
install -p -m 644 components/engine/contrib/init/systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service
|
|
# add bash, zsh, and fish completions
|
|
install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions
|
|
install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions
|
|
install -d $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d
|
|
install -p -m 644 components/cli/contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker
|
|
install -p -m 644 components/cli/contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker
|
|
install -p -m 644 components/cli/contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish
|
|
|
|
# install manpages
|
|
install -d %{buildroot}%{_mandir}/man1
|
|
install -p -m 644 components/cli/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1
|
|
install -d %{buildroot}%{_mandir}/man5
|
|
install -p -m 644 components/cli/man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5
|
|
install -d %{buildroot}%{_mandir}/man8
|
|
install -p -m 644 components/cli/man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8
|
|
|
|
# add vimfiles
|
|
install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc
|
|
install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect
|
|
install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax
|
|
install -p -m 644 components/engine/contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt
|
|
install -p -m 644 components/engine/contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
|
|
install -p -m 644 components/engine/contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim
|
|
|
|
# add nano
|
|
install -d $RPM_BUILD_ROOT/usr/share/nano
|
|
install -p -m 644 components/engine/contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc
|
|
|
|
# list files owned by the package here
|
|
%files
|
|
%doc components/engine/AUTHORS components/engine/CHANGELOG.md components/engine/CONTRIBUTING.md components/engine/LICENSE components/engine/MAINTAINERS components/engine/NOTICE components/engine/README.md
|
|
/%{_bindir}/docker
|
|
/%{_bindir}/dockerd
|
|
/%{_bindir}/containerd
|
|
/%{_bindir}/docker-proxy
|
|
/%{_bindir}/containerd-shim
|
|
/%{_bindir}/runc
|
|
/%{_sysconfdir}/udev/rules.d/80-docker.rules
|
|
%if 0%{?is_systemd}
|
|
/%{_unitdir}/docker.service
|
|
%else
|
|
/%{_initddir}/docker
|
|
%endif
|
|
/usr/share/bash-completion/completions/docker
|
|
/usr/share/zsh/vendor-completions/_docker
|
|
/usr/share/fish/vendor_completions.d/docker.fish
|
|
%doc
|
|
/%{_mandir}/man1/*
|
|
/%{_mandir}/man5/*
|
|
/%{_mandir}/man8/*
|
|
|
|
%config(noreplace,missingok) /etc/sysconfig/docker
|
|
%config(noreplace,missingok) /etc/sysconfig/docker-storage
|
|
%config(noreplace,missingok) /etc/sysconfig/docker-network
|
|
|
|
/usr/share/vim/vimfiles/doc/dockerfile.txt
|
|
/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
|
|
/usr/share/vim/vimfiles/syntax/dockerfile.vim
|
|
/usr/share/nano/Dockerfile.nanorc
|
|
|
|
%post
|
|
if ! getent group docker > /dev/null; then
|
|
groupadd --system docker
|
|
fi
|
|
%if 0%{?is_systemd}
|
|
#%systemd_post docker
|
|
systemctl enable docker
|
|
systemctl start docker
|
|
%else
|
|
# This adds the proper /etc/rc*.d links for the script
|
|
/sbin/chkconfig --add docker
|
|
%endif
|
|
if ! getent group docker > /dev/null; then
|
|
groupadd --system docker
|
|
fi
|
|
|
|
%preun
|
|
%if 0%{?is_systemd}
|
|
%systemd_preun docker
|
|
%else
|
|
if [ $1 -eq 0 ] ; then
|
|
/sbin/service docker stop >/dev/null 2>&1
|
|
/sbin/chkconfig --del docker
|
|
fi
|
|
%endif
|
|
|
|
%postun
|
|
%if 0%{?is_systemd}
|
|
%systemd_postun_with_restart docker
|
|
%else
|
|
if [ "$1" -ge "1" ] ; then
|
|
/sbin/service docker condrestart >/dev/null 2>&1 || :
|
|
fi
|
|
%endif
|
|
|
|
%changelog
|
|
* Fri Dec 27 2020 liuzekun<liuzekun@huawei.com> - 18.09.109
|
|
- Type:bugfix
|
|
- ID:NA
|
|
- CVE:NA
|
|
- SUG:restart
|
|
- DESC:
|
|
1.add more messages for ops when device not found
|
|
2.do not add "-w" to LDFLAG
|
|
3.add files in proc for mask
|
|
4.fix docker load files leak
|
|
5.do not sync if BYPAAS_SYNC is false
|
|
6.fix panic on single-character volumes
|
|
7.mask /proc/pin_memory
|
|
|
|
* Mon Dec 21 2020 fengshaobao<shaobao.feng@huawei.com> - 18.09.110
|
|
- Type:bugfix
|
|
- ID:NA
|
|
- CVE:NA
|
|
- SUG:restart
|
|
- DESC: append the image hostname itself as an endpoint even the registry mirror matched.
|