]> git.pld-linux.org Git - packages/docker-ce.git/blame - docker-ce.spec
Up to new stable line 18.0.3
[packages/docker-ce.git] / docker-ce.spec
CommitLineData
a73bca1d
ER
1#
2# Conditional build:
3%bcond_with tests # build without tests
de893b83 4%bcond_with vim # build vim syntax package (bundled in vim 7.4.979-2)
b317146a 5%bcond_with doc # build manual pages
b2c07037 6
8eac6649
ER
7# TODO: drop P docker when docker-compose updated to use docker(engine) dep
8
be6486fd
ER
9# NOTES
10# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
11
d6aea7e9 12# v1.0.0-rc4-171-gb2567b37
87ea3e27 13%define runc_commit 4fc53a8
d6aea7e9 14# v1.0.0
87ea3e27 15%define containerd_commit cfd0439
d83187b3 16# v0.8.0-dev.2-624-g7b2b1feb
87ea3e27 17%define libnetwork_commit 1b91bc9
027e5a65 18#define subver -rc2
8716e3f7
ER
19Summary: Docker CE: the open-source application container engine
20Name: docker-ce
21# Using Docker-CE, Stay on Stable channel
22# https://docs.docker.com/engine/installation/
87ea3e27 23Version: 18.03.0
027e5a65 24Release: 1
b877f7b7
ER
25License: Apache v2.0
26Group: Applications/System
d83187b3 27# https://github.com/docker/docker-ce/releases
027e5a65
ER
28#Source0: https://github.com/docker/docker-ce/archive/v%{version}-ce%{subver}/%{name}-%{version}-ce%{subver}.tar.gz
29Source0: https://github.com/docker/docker-ce/archive/v%{version}-ce/%{name}-%{version}-ce.tar.gz
87ea3e27 30# Source0-md5: e02c511acf83e4478dab64937e540a71
d6aea7e9 31Source1: https://github.com/opencontainers/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
87ea3e27 32# Source1-md5: ffe14cfe0655f1a9c0ac95ad180c03f2
ed3d2488 33Source2: https://github.com/containerd/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz
87ea3e27 34# Source2-md5: 62b42247000d62b71918c95272413331
a75f03e6 35Source3: https://github.com/docker/libnetwork/archive/%{libnetwork_commit}/libnetwork-%{libnetwork_commit}.tar.gz
87ea3e27 36# Source3-md5: c6e746565303cb760b4f7b9b14c94431
b96d9f58
ER
37Source4: https://github.com/krallin/tini/archive/v0.13.0/tini-0.13.0.tar.gz
38# Source4-md5: c29541112a242c53c82bb6b1213f288f
8716e3f7
ER
39Source5: dockerd.sh
40Source7: docker.init
41Source8: docker.sysconfig
b6f967da 42Patch0: systemd.patch
8716e3f7 43URL: https://www.docker.com/community-edition/
be6486fd 44BuildRequires: btrfs-progs-devel >= 3.16.1
6dee0436 45BuildRequires: cmake
be6486fd 46BuildRequires: device-mapper-devel >= 2.02.89
0a5a2ace 47BuildRequires: golang >= 1.9
be6486fd 48BuildRequires: libseccomp-devel >= 2.2.1
0be68701 49BuildRequires: rpmbuild(macros) >= 1.644
678a84bd 50BuildRequires: sqlite3-devel >= 3.7.9
a8843e04 51BuildRequires: xxd
d88043a2
ER
52Requires(post,preun): /sbin/chkconfig
53Requires(postun): /usr/sbin/groupdel
54Requires(pre): /usr/bin/getgid
55Requires(pre): /usr/sbin/groupadd
27e7cc0f 56Requires: ca-certificates
2e42e913 57Requires: iproute2 >= 3.5
b5920dfc 58Requires: iptables
345101bd 59Requires: rc-scripts >= 0.4.0.10
0be68701 60Requires: systemd-units >= 38
2e42e913 61Requires: tar >= 1:1.26
2015cb19 62Requires: uname(release) >= 3.8
db150373 63Requires: xz
65777843 64Suggests: docker-credential-helpers
2e42e913 65Suggests: git-core >= 1.7
46a6d8ab 66Suggests: libcgroup
2e42e913 67Suggests: xz >= 1:4.9
8eac6649
ER
68Provides: docker = %{version}
69Provides: docker(engine) = %{version}
d88043a2 70Provides: group(docker)
87ea3e27 71Obsoletes: docker < 18.0
47009a45 72Obsoletes: lxc-docker < 1.1.1
d2670441 73# only runs on x64 hosts for now:
f4565fa4
ER
74# https://github.com/docker/docker/issues/136
75# https://github.com/docker/docker/issues/611
345101bd 76ExclusiveArch: %{x8664}
b877f7b7
ER
77BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
78
8c352669 79%define bash_compdir %{_datadir}/bash-completion/completions
a6da47b4 80%define zsh_compdir %{_datadir}/zsh/site-functions
f891ae41 81%define _vimdatadir %{_datadir}/vim
a990be6d 82%define _libexecdir %{_prefix}/lib
8c352669 83
434d66d3
ER
84# binary stripped or something
85%define _enable_debug_packages 0
86
b877f7b7 87%description
f4565fa4
ER
88Docker is an open source project to pack, ship and run any application
89as a lightweight container
90
91Docker containers are both hardware-agnostic and platform-agnostic.
92This means that they can run anywhere, from your laptop to the largest
93EC2 compute instance and everything in between - and they don't
94require that you use a particular language, framework or packaging
95system. That makes them great building blocks for deploying and
96scaling web apps, databases and backend services without depending on
97a particular stack or provider.
98
99Docker is an open-source implementation of the deployment engine which
100powers dotCloud, a popular Platform-as-a-Service. It benefits directly
101from the experience accumulated over several years of large-scale
102operation and support of hundreds of thousands of applications and
103databases.
b877f7b7 104
f891ae41 105%package -n bash-completion-%{name}
8c352669
ER
106Summary: bash-completion for Docker
107Summary(pl.UTF-8): bashowe uzupełnianie nazw dla Dockera
108Group: Applications/Shells
109Requires: %{name}
110Requires: bash-completion >= 2.0
47009a45 111Obsoletes: bash-completion-lxc-docker < 1.1.1
8c352669
ER
112%if "%{_rpmversion}" >= "5"
113BuildArch: noarch
114%endif
115
47009a45 116%description -n bash-completion-%{name}
8c352669
ER
117This package provides bash-completion for Docker.
118
47009a45 119%description -n bash-completion-%{name} -l pl.UTF-8
8c352669
ER
120Pakiet ten dostarcza bashowe uzupełnianie nazw dla Dockera.
121
a6da47b4
JK
122%package -n zsh-completion-%{name}
123Summary: zsh completion for Docker
124Summary(pl.UTF-8): Uzupełnianie parametrów w zsh dla poleceń Dockera
125Group: Applications/Shells
126Requires: %{name}
127%if "%{_rpmversion}" >= "5"
128BuildArch: noarch
129%endif
130
131%description -n zsh-completion-%{name}
132This package provides zsh completion for Docker.
133
134%description -n zsh-completion-%{name} -l pl.UTF-8
135Pakiet ten dostarcza uzupełnianie w zsh dla poleceń Dockera.
136
f891ae41
ER
137%package -n vim-syntax-%{name}
138Summary: Vim syntax: Docker
139Group: Applications/Editors/Vim
140Requires: %{name} = %{version}-%{release}
141Requires: vim-rt >= 4:7.2.170
47009a45 142Obsoletes: vim-syntax-lxc-docker < 1.1.1
f891ae41
ER
143%if "%{_rpmversion}" >= "5"
144BuildArch: noarch
145%endif
146
147%description -n vim-syntax-%{name}
148This plugin provides syntax highlighting in Dockerfile.
149
b877f7b7 150%prep
ed3d2488 151%setup -q -n %{name}-%{version}-ce%{?subver} -a1 -a2 -a3 -a4
3fe85ad0
ER
152
153mv runc-%{runc_commit}* runc
154mv runc/vendor runc/src
155ln -s ../../.. runc/src/github.com/opencontainers/runc
156
157mv containerd-%{containerd_commit}* containerd
ed3d2488
ER
158mv containerd/vendor containerd/src
159ln -s ../../.. containerd/src/github.com/containerd/containerd
3fe85ad0
ER
160
161mv libnetwork-%{libnetwork_commit}* libnetwork
162install -d libnetwork/gopath
163mv libnetwork/vendor libnetwork/gopath/src
164ln -s ../../../.. libnetwork/gopath/src/github.com/docker/libnetwork
165
b96d9f58 166mv tini-* tini
36f21c65 167
f47d9fe1
ER
168install -d components/cli/.gopath/src/github.com/docker
169ln -s ../../../.. components/cli/.gopath/src/github.com/docker/cli
d83187b3 170
f47d9fe1 171%patch0 -p1 -d components/engine
b877f7b7 172
692548c0 173%build
87ea3e27 174grep -rhE "=%{runc_commit}|=%{containerd_commit}|=%{libnetwork_commit}" $(pwd)/components/engine/hack/dockerfile/install/
36f21c65 175
b3c6f3dc 176export VERSION=%{version}
8e447246
ER
177export GITCOMMIT="PLD-Linux/%{version}" # for cli
178export DOCKER_GITCOMMIT="PLD-Linux/%{version}" # for engine
b3c6f3dc 179
36f21c65 180# build docker-runc
cd3b43db 181sed -i -e 's,shell git,shell false,' runc/Makefile
3fe85ad0 182GOPATH=$(pwd)/runc \
cd3b43db 183%{__make} -C runc \
4f00b115 184 COMMIT=$RUNC_COMMIT
3fe85ad0 185./runc/runc -v
36f21c65
ER
186
187# build docker-containerd
ed3d2488 188GOPATH=$(pwd)/containerd \
4f00b115
ER
189%{__make} -C containerd \
190 GIT_COMMIT=$CONTAINERD_COMMIT
36f21c65 191
a75f03e6 192# build docker-proxy
3fe85ad0
ER
193cd libnetwork
194GOPATH=$(pwd)/gopath \
195go build -ldflags="-linkmode=external" \
196 -o docker-proxy \
197 github.com/docker/libnetwork/cmd/proxy
198cd ..
a75f03e6 199
b96d9f58
ER
200# build docker-init
201cd tini
7397034b 202cmake .
b96d9f58 203%{__make}
b96d9f58 204
3fe85ad0 205# docker cli
b3c6f3dc 206cd ../components/cli
b3c6f3dc 207GOPATH=$(pwd)/.gopath \
b5a02972 208DISABLE_WARN_OUTSIDE_CONTAINER=1 \
f47d9fe1 209%{__make} dynbinary
3fe85ad0 210./build/docker -v
b3c6f3dc
ER
211
212cd ../engine
3fe85ad0 213AUTO_GOPATH=1 \
90544b12 214bash -x hack/make.sh dynbinary
3fe85ad0 215./bundles/latest/dynbinary-daemon/dockerd -v
b317146a
ER
216%if %{with doc}
217man/md2man-all.sh
218%endif
a73bca1d 219
b877f7b7
ER
220%install
221rm -rf $RPM_BUILD_ROOT
36f21c65 222install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/init.d,sysconfig},%{systemdunitdir}} \
a990be6d 223 $RPM_BUILD_ROOT%{_libexecdir} \
7b3be108 224 $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes}
e4252f76 225
3fe85ad0 226# docker-cli
b3c6f3dc 227install -p components/cli/build/docker $RPM_BUILD_ROOT%{_bindir}/docker
36f21c65 228
3fe85ad0 229# docker-runc
36f21c65
ER
230install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc
231
3fe85ad0 232# docker-containerd
36f21c65
ER
233install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/docker-containerd
234install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-shim
6a5abe01 235install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-ctr
36f21c65 236
3fe85ad0
ER
237# docker-proxy
238install -p libnetwork/docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
a75f03e6 239
3fe85ad0 240# docker-init
b96d9f58
ER
241install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init
242
3fe85ad0
ER
243# dockerd
244cd components/engine
245install -p bundles/latest/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
246cp -p contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir}
247cp -p contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir}
5fcaa458 248install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker
b96d9f58 249install -p %{SOURCE5} $RPM_BUILD_ROOT%{_libexecdir}/dockerd
5fcaa458 250cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker
b877f7b7 251
e4252f76
ER
252# install udev rules
253install -d $RPM_BUILD_ROOT/lib/udev/rules.d
254cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d
255
f891ae41 256# vim syntax
c590f8e8 257%if %{with vim}
f891ae41 258install -d $RPM_BUILD_ROOT%{_vimdatadir}
7db50491 259cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir}
f891ae41 260%{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md}
c590f8e8 261%endif
f891ae41 262
b9423c2b
ER
263# bash and zsh completion
264cd ../cli/contrib/completion
265install -d $RPM_BUILD_ROOT%{bash_compdir}
266cp -p bash/docker $RPM_BUILD_ROOT%{bash_compdir}
267install -d $RPM_BUILD_ROOT%{zsh_compdir}
268cp -p zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
269
d88043a2
ER
270%pre
271%groupadd -g 296 docker
272
345101bd 273%post
8716e3f7
ER
274/sbin/chkconfig --add docker
275%service -n docker restart
276%systemd_post docker.service
345101bd
ER
277
278%preun
279if [ "$1" = "0" ]; then
8716e3f7
ER
280 %service -q docker stop
281 /sbin/chkconfig --del docker
345101bd 282fi
8716e3f7 283%systemd_preun docker.service
345101bd 284
d88043a2
ER
285%postun
286if [ "$1" = "0" ]; then
287 %groupremove docker
288fi
2e523ef0 289%systemd_reload
d88043a2 290
eb841086
ER
291%triggerun -- docker < 17.0
292# Prevent preun from docker from working
293chmod a-x /etc/rc.d/init.d/docker
294
295%triggerpostun -- docker < 17.0
296# Restore what triggerun removed
297chmod 754 /etc/rc.d/init.d/docker
298# reinstall docker init.d links, which could be different
299/sbin/chkconfig --del docker
300/sbin/chkconfig --add docker
301
b877f7b7
ER
302%clean
303rm -rf $RPM_BUILD_ROOT
304
305%files
306%defattr(644,root,root,755)
3fe85ad0 307%doc components/engine/{README.md,CHANGELOG.md,CONTRIBUTING.md,LICENSE,AUTHORS,NOTICE,MAINTAINERS}
62b620a7 308%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/docker
47009a45 309%attr(754,root,root) /etc/rc.d/init.d/docker
9c77b76c 310%attr(755,root,root) %{_bindir}/docker
36f21c65 311%attr(755,root,root) %{_sbindir}/docker-containerd
6a5abe01 312%attr(755,root,root) %{_sbindir}/docker-containerd-ctr
36f21c65 313%attr(755,root,root) %{_sbindir}/docker-containerd-shim
b96d9f58 314%attr(755,root,root) %{_sbindir}/docker-init
4467217c
ER
315%attr(755,root,root) %{_sbindir}/docker-proxy
316%attr(755,root,root) %{_sbindir}/docker-runc
317%attr(755,root,root) %{_sbindir}/dockerd
29baba5b 318%attr(755,root,root) %{_libexecdir}/dockerd
62b620a7 319%{systemdunitdir}/docker.service
5fcaa458 320%{systemdunitdir}/docker.socket
e4252f76 321/lib/udev/rules.d/80-docker.rules
36f21c65 322
af991618
ER
323%dir %attr(700,root,root) /var/lib/docker
324%dir %attr(700,root,root) /var/lib/docker/containers
b73b275e 325%dir %attr(700,root,root) /var/lib/docker/execdriver
af991618 326%dir %attr(700,root,root) /var/lib/docker/graph
841676f2 327%dir %attr(700,root,root) /var/lib/docker/image
b73b275e 328%dir %attr(700,root,root) /var/lib/docker/init
841676f2 329%dir %attr(700,root,root) /var/lib/docker/network
7b3be108 330%dir %attr(700,root,root) /var/lib/docker/swarm
b73b275e
ER
331%dir %attr(700,root,root) /var/lib/docker/tmp
332%dir %attr(700,root,root) /var/lib/docker/trust
333%dir %attr(700,root,root) /var/lib/docker/vfs
af991618 334%dir %attr(700,root,root) /var/lib/docker/volumes
8c352669 335
f891ae41 336%files -n bash-completion-%{name}
8c352669 337%defattr(644,root,root,755)
8c352669 338%{bash_compdir}/docker
f891ae41 339
a6da47b4
JK
340%files -n zsh-completion-%{name}
341%defattr(644,root,root,755)
342%{zsh_compdir}/_docker
343
c590f8e8 344%if %{with vim}
f891ae41
ER
345%files -n vim-syntax-%{name}
346%defattr(644,root,root,755)
3fe85ad0 347%doc components/engine/contrib/syntax/vim/{README.md,LICENSE}
f891ae41
ER
348%{_vimdatadir}/doc/dockerfile.txt
349%{_vimdatadir}/ftdetect/dockerfile.vim
350%{_vimdatadir}/syntax/dockerfile.vim
c590f8e8 351%endif
This page took 0.133307 seconds and 4 git commands to generate.