github.com/docker/docker-ce@v17.12.1-ce-rc2+incompatible/components/packaging/rpm/centos-7/docker-ce.spec (about) 1 Name: docker-ce 2 Version: %{_version} 3 Release: %{_release}%{?dist} 4 Summary: The open-source application container engine 5 Group: Tools/Docker 6 License: ASL 2.0 7 Source0: engine.tgz 8 Source1: cli.tgz 9 URL: https://www.docker.com 10 Vendor: Docker 11 Packager: Docker <support@docker.com> 12 13 # DWZ problem with multiple golang binary, see bug 14 # https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 15 %global _dwz_low_mem_die_limit 0 16 %global is_systemd 1 17 %global with_selinux 1 18 19 BuildRequires: pkgconfig(systemd) 20 BuildRequires: pkgconfig(libsystemd-journal) 21 22 # required packages on install 23 Requires: /bin/sh 24 Requires: container-selinux >= 2.9 25 Requires: iptables 26 Requires: libcgroup 27 Requires: systemd-units 28 Requires: tar 29 Requires: xz 30 31 # Resolves: rhbz#1165615 32 Requires: device-mapper-libs >= 1.02.90-1 33 34 # conflicting packages 35 Conflicts: docker 36 Conflicts: docker-io 37 Conflicts: docker-engine-cs 38 Conflicts: docker-ee 39 40 # Obsolete packages 41 Obsoletes: docker-ce-selinux 42 Obsoletes: docker-engine-selinux 43 Obsoletes: docker-engine 44 45 %description 46 Docker is an open source project to build, ship and run any application as a 47 lightweight container. 48 49 Docker containers are both hardware-agnostic and platform-agnostic. This means 50 they can run anywhere, from your laptop to the largest EC2 compute instance and 51 everything in between - and they don't require you to use a particular 52 language, framework or packaging system. That makes them great building blocks 53 for deploying and scaling web apps, databases, and backend services without 54 depending on a particular stack or provider. 55 56 %prep 57 %setup -q -c -n src -a 1 58 59 %build 60 export DOCKER_GITCOMMIT=%{_gitcommit} 61 mkdir -p /go/src/github.com/docker 62 rm -f /go/src/github.com/docker/cli 63 ln -s /root/rpmbuild/BUILD/src/cli /go/src/github.com/docker/cli 64 pushd /go/src/github.com/docker/cli 65 make VERSION=%{_origversion} GITCOMMIT=%{_gitcommit} dynbinary manpages # cli 66 popd 67 pushd engine 68 TMP_GOPATH="/go" hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic tini 69 VERSION=%{_origversion} hack/make.sh dynbinary 70 popd 71 72 %check 73 cli/build/docker -v 74 engine/bundles/dynbinary-daemon/dockerd -v 75 76 %install 77 # install binary 78 install -d $RPM_BUILD_ROOT/%{_bindir} 79 install -p -m 755 cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker 80 install -p -m 755 $(readlink -f engine/bundles/dynbinary-daemon/dockerd) $RPM_BUILD_ROOT/%{_bindir}/dockerd 81 82 # install proxy 83 install -p -m 755 /usr/local/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy 84 85 # install containerd 86 install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd 87 install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim 88 install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr 89 90 # install runc 91 install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc 92 93 # install tini 94 install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init 95 96 # install udev rules 97 install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d 98 install -p -m 644 engine/contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules 99 100 # add init scripts 101 install -d $RPM_BUILD_ROOT/etc/sysconfig 102 install -d $RPM_BUILD_ROOT/%{_initddir} 103 install -d $RPM_BUILD_ROOT/%{_unitdir} 104 install -p -m 644 /systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service 105 # add bash, zsh, and fish completions 106 install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions 107 install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions 108 install -d $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d 109 install -p -m 644 cli/contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker 110 install -p -m 644 cli/contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker 111 install -p -m 644 cli/contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish 112 113 # install manpages 114 install -d %{buildroot}%{_mandir}/man1 115 install -p -m 644 cli/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1 116 install -d %{buildroot}%{_mandir}/man5 117 install -p -m 644 cli/man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5 118 install -d %{buildroot}%{_mandir}/man8 119 install -p -m 644 cli/man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8 120 121 # add vimfiles 122 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc 123 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect 124 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax 125 install -p -m 644 engine/contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt 126 install -p -m 644 engine/contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim 127 install -p -m 644 engine/contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim 128 129 # add nano 130 install -d $RPM_BUILD_ROOT/usr/share/nano 131 install -p -m 644 engine/contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc 132 133 mkdir -p build-docs 134 for engine_file in AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md; do 135 cp "engine/$engine_file" "build-docs/engine-$engine_file" 136 done 137 for cli_file in LICENSE MAINTAINERS NOTICE README.md; do 138 cp "cli/$cli_file" "build-docs/cli-$cli_file" 139 done 140 141 # list files owned by the package here 142 %files 143 %doc build-docs/engine-AUTHORS build-docs/engine-CHANGELOG.md build-docs/engine-CONTRIBUTING.md build-docs/engine-LICENSE build-docs/engine-MAINTAINERS build-docs/engine-NOTICE build-docs/engine-README.md 144 %doc build-docs/cli-LICENSE build-docs/cli-MAINTAINERS build-docs/cli-NOTICE build-docs/cli-README.md 145 /%{_bindir}/docker 146 /%{_bindir}/dockerd 147 /%{_bindir}/docker-containerd 148 /%{_bindir}/docker-containerd-shim 149 /%{_bindir}/docker-containerd-ctr 150 /%{_bindir}/docker-proxy 151 /%{_bindir}/docker-runc 152 /%{_bindir}/docker-init 153 /%{_sysconfdir}/udev/rules.d/80-docker.rules 154 /%{_unitdir}/docker.service 155 /usr/share/bash-completion/completions/docker 156 /usr/share/zsh/vendor-completions/_docker 157 /usr/share/fish/vendor_completions.d/docker.fish 158 %doc 159 /%{_mandir}/man1/* 160 /%{_mandir}/man5/* 161 /%{_mandir}/man8/* 162 /usr/share/vim/vimfiles/doc/dockerfile.txt 163 /usr/share/vim/vimfiles/ftdetect/dockerfile.vim 164 /usr/share/vim/vimfiles/syntax/dockerfile.vim 165 /usr/share/nano/Dockerfile.nanorc 166 167 %pre 168 if [ $1 -gt 0 ] ; then 169 # package upgrade scenario, before new files are installed 170 171 # clear any old state 172 rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : 173 174 # check if docker service is running 175 if systemctl is-active docker > /dev/null 2>&1; then 176 systemctl stop docker > /dev/null 2>&1 || : 177 touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : 178 fi 179 fi 180 181 %post 182 %systemd_post docker 183 if ! getent group docker > /dev/null; then 184 groupadd --system docker 185 fi 186 187 %preun 188 %systemd_preun docker 189 190 %postun 191 %systemd_postun_with_restart docker 192 193 %posttrans 194 if [ $1 -ge 0 ] ; then 195 # package upgrade scenario, after new files are installed 196 197 # check if docker was running before upgrade 198 if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then 199 systemctl start docker > /dev/null 2>&1 || : 200 rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : 201 fi 202 fi 203 204 %changelog