diff --git a/.abf.yml b/.abf.yml index a48fa23..40640dc 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,2 +1,2 @@ sources: - containerd-1.2.8.tar.gz: bf6c043ed0ec6c5317eec7232cd690070e9aa87f + containerd-1.3.0.tar.gz: ec755fe333f1b2b11976399b90096f2a3fdb0559 diff --git a/containerd.service b/containerd.service new file mode 100644 index 0000000..08c6a2e --- /dev/null +++ b/containerd.service @@ -0,0 +1,13 @@ +[Unit] +Description=containerd container runtime +Documentation=https://containerd.io +After=network.target + +[Service] +ExecStartPre=/sbin/modprobe overlay +ExecStart=/usr/bin/containerd +Delegate=yes +KillMode=process + +[Install] +WantedBy=multi-user.target diff --git a/containerd.toml b/containerd.toml new file mode 100644 index 0000000..fc3f9f7 --- /dev/null +++ b/containerd.toml @@ -0,0 +1,15 @@ +#root = "/var/lib/containerd" +#state = "/run/containerd" +#subreaper = true +#oom_score = 0 + +#[grpc] +# address = "/run/containerd/containerd.sock" +# uid = 0 +# gid = 0 + +#[debug] +# address = "/run/containerd/debug.sock" +# uid = 0 +# gid = 0 +# level = "info" diff --git a/docker-containerd.spec b/docker-containerd.spec index d1acc5c..d2453b7 100644 --- a/docker-containerd.spec +++ b/docker-containerd.spec @@ -1,16 +1,31 @@ -%define debug_package %{nil} +%bcond_with debug + +%if %{with debug} +%global _dwz_low_mem_die_limit 0 +%else +%global debug_package %{nil} +%endif + +%if ! 0%{?gobuild:1} +%define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**}; +%endif + +%global import_path github.com/containerd/containerd %define oname containerd Summary: A daemon to control runC Name: docker-containerd -Version: 1.2.8 -Release: 2 +Version: 1.3.0 +Release: 1 License: ASL 2.0 Group: System/Kernel and hardware Url: http://www.docker.com -Source0: https://github.com/containerd/containerd/archive/v%{version}.tar.gz?/%{oname}-%{version}.tar.gz -Patch0: fix-run-docker-containerd-path.patch +%global commit 9754871865f7fe2f4e74d43e2fc7ccd237edcbce +%global tag v%{version} +Source0: https://github.com/containerd/containerd/archive/%{tag}.tar.gz?/%{oname}-%{version}.tar.gz +Source1: containerd.service +Source2: containerd.toml BuildRequires: glibc-static-devel BuildRequires: golang BuildRequires: btrfs-devel @@ -28,38 +43,44 @@ of containers. %files %doc *.md LICENSE NOTICE -%{_bindir}/* -%{_presetdir}/86-%{oname}.preset -%{_unitdir}/%{oname}.service +%{_bindir}/containerd +%{_bindir}/containerd-shim +%{_bindir}/docker-containerd +%{_bindir}/docker-containerd-shim +%{_bindir}/ctr +%{_unitdir}/containerd.service +%dir %{_sysconfdir}/containerd +%config(noreplace) %{_sysconfdir}/containerd/config.toml #------------------------------------------------------------------ %prep %setup -qn %{oname}-%{version} -%patch0 -p1 %build -mv vendor src -ln -s $(pwd) src/github.com/%{oname}/%{oname} -export GOPATH=$(pwd) -%make +mkdir -p src/%(dirname %{import_path}) +ln -s ../../.. src/%{import_path} +export GOPATH=$(pwd):%{_libdir}/golang +export LDFLAGS="-X %{import_path}/version.Package=%{import_path} -X %{import_path}/version.Version=%{tag} -X %{import_path}/version.Revision=%{commit}" +go build -o bin/containerd %{import_path}/cmd/containerd +go build -o bin/containerd-shim %{import_path}/cmd/containerd-shim +go build -o bin/ctr %{import_path}/cmd/ctr %install -# install binary -install -d %{buildroot}%{_bindir} -install -p -m 755 bin/* %{buildroot}%{_bindir} +install -D -m 0755 bin/containerd %{buildroot}%{_bindir}/containerd +install -D -m 0755 bin/containerd-shim %{buildroot}%{_bindir}/containerd-shim +install -D -m 0755 bin/ctr %{buildroot}%{_bindir}/ctr +install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/containerd.service +install -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/containerd/config.toml -# install systemd/init scripts -install -d %{buildroot}%{_unitdir} -sed -e 's,/usr/local,%{_prefix},g' %{oname}.service > %{buildroot}%{_unitdir}/%{oname}.service +ln -s containerd %{buildroot}%{_bindir}/docker-containerd +ln -s containerd-shim %{buildroot}%{_bindir}/docker-containerd-shim -install -d %{buildroot}%{_presetdir} -cat > %{buildroot}%{_presetdir}/86-%{oname}.preset << EOF -enable %{oname}.service -EOF +%post +%systemd_post containerd.service -# Docker expects stuff to be named its way... -cd %{buildroot}%{_bindir} -for i in *; do - ln -sf $i docker-$i -done +%preun +%systemd_preun containerd.service + +%postun +%systemd_postun_with_restart containerd.service diff --git a/fix-run-docker-containerd-path.patch b/fix-run-docker-containerd-path.patch deleted file mode 100644 index e456201..0000000 --- a/fix-run-docker-containerd-path.patch +++ /dev/null @@ -1,62 +0,0 @@ -Index: containerd-1.2.6/client_unix_test.go -=================================================================== ---- containerd-1.2.6/client_unix_test.go -+++ containerd-1.2.6/client_unix_test.go 2019-05-05 19:07:43.625687652 +0200 -@@ -24,8 +24,8 @@ - - const ( - defaultRoot = "/var/lib/containerd-test" -- defaultState = "/run/containerd-test" -- defaultAddress = "/run/containerd-test/containerd.sock" -+ defaultState = "/run/docker/libcontainerd-test" -+ defaultAddress = "/run/docker/libcontainerd-test/containerd.sock" - ) - - var ( -Index: containerd-1.2.6/releases/v1.0.0-rc.0.toml -=================================================================== ---- containerd-1.2.6/releases/v1.0.0-rc.0.toml -+++ containerd-1.2.6/releases/v1.0.0-rc.0.toml 2019-05-05 19:09:22.725066455 +0200 -@@ -45,7 +45,7 @@ - Memory improvements over beta 2... - ``` - RSS CMD -- 3644 containerd-shim -namespace default -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/default/test10 -address /run/containerd/containerd.sock -containerd-binary /usr/local/bin/containerd -debug -+ 3644 containerd-shim -namespace default -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/default/test10 -address /run/docker/libcontainerd/containerd.sock -containerd-binary /usr/local/bin/containerd -debug - 15320 docker-containerd-shim --namespace moby --workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/ffa219303c1419b179393a1123f176bb4268337432b0ca7945bc7ac66db73cad --address /var/run/docker/containerd/docker-containerd.sock --runtime-root /var/run/docker/ - ``` - -Index: containerd-1.2.6/defaults/defaults_unix.go -=================================================================== ---- containerd-1.2.6/defaults/defaults_unix.go -+++ containerd-1.2.6/defaults/defaults_unix.go 2019-05-05 19:06:51.858012156 +0200 -@@ -24,12 +24,12 @@ - DefaultRootDir = "/var/lib/containerd" - // DefaultStateDir is the default location used by containerd to store - // transient data -- DefaultStateDir = "/run/containerd" -+ DefaultStateDir = "/run/docker/libcontainerd" - // DefaultAddress is the default unix socket address -- DefaultAddress = "/run/containerd/containerd.sock" -+ DefaultAddress = "/run/docker/libcontainerd/containerd.sock" - // DefaultDebugAddress is the default unix socket address for pprof data -- DefaultDebugAddress = "/run/containerd/debug.sock" -+ DefaultDebugAddress = "/run/docker/libcontainerd/debug.sock" - // DefaultFIFODir is the default location used by client-side cio library - // to store FIFOs. -- DefaultFIFODir = "/run/containerd/fifo" -+ DefaultFIFODir = "/run/docker/libcontainerd/fifo" - ) -Index: containerd-1.2.6/runtime/v1/linux/proc/process.go -=================================================================== ---- containerd-1.2.6/runtime/v1/linux/proc/process.go -+++ containerd-1.2.6/runtime/v1/linux/proc/process.go 2019-05-05 19:08:28.213408157 +0200 -@@ -23,7 +23,7 @@ - ) - - // RuncRoot is the path to the root runc state directory --const RuncRoot = "/run/containerd/runc" -+const RuncRoot = "/run/docker/libcontainerd/runc" - - func stateName(v interface{}) string { - switch v.(type) {