diff options
author | Vincent Demeester <vincent@sbr.pm> | 2017-01-17 15:49:32 +0100 |
---|---|---|
committer | Vincent Demeester <vincent@sbr.pm> | 2017-01-18 21:33:37 +0100 |
commit | 74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247 (patch) | |
tree | 29a612d555493227e7aab5788801430bae3bae31 /pkgs/applications/virtualization/docker | |
parent | e9109b1b979d8ce9385431b38d0f2eda693cbaf3 (diff) | |
download | nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.gz nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.bz2 nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.lz nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.xz nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.zst nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.zip |
docker: 1.12.6 -> 1.13.0
- Update docker version to 1.13.0. - Introduce now docker-proxy package (from libnetmork). - Use overrideDerivation to set the correct version for docker. - Update tini to make sure we can build it static. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Diffstat (limited to 'pkgs/applications/virtualization/docker')
-rw-r--r-- | pkgs/applications/virtualization/docker/default.nix | 53 | ||||
-rw-r--r-- | pkgs/applications/virtualization/docker/proxy.nix | 36 |
2 files changed, 82 insertions, 7 deletions
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index ba21a23f8ad8..2391775af42a 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, makeWrapper, pkgconfig, go-md2man -, go, containerd, runc +, go, containerd, runc, docker-proxy, tini , sqlite, iproute, bridge-utils, devicemapper, systemd , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs , procps @@ -11,15 +11,53 @@ with lib; stdenv.mkDerivation rec { name = "docker-${version}"; - version = "1.12.6"; + version = "1.13.0"; src = fetchFromGitHub { owner = "docker"; repo = "docker"; rev = "v${version}"; - sha256 = "10jhjas07xxlxjsxby8865rr0d0zsc5azy16rsz1idmy7f7lk6jh"; + sha256 = "03b181xiqgnwanc567w9p6rbdgdvrfv0lk4r7b604ksm0fr4cz23"; }; + docker-runc = runc.overrideAttrs (oldAttrs: rec { + name = "docker-runc"; + src = fetchFromGitHub { + owner = "docker"; + repo = "runc"; + rev = "2f7393a47307a16f8cee44a37b262e8b81021e3e"; + sha256 = "1s5nfnbinzmcnm8avhvsniz0ihxyva4w5qz1hzzyqdyr0w2scnbj"; + }; + # docker/runc already include these patches / are not applicable + patches = []; + }); + docker-containerd = containerd.overrideAttrs (oldAttrs: rec { + name = "docker-containerd"; + src = fetchFromGitHub { + owner = "docker"; + repo = "containerd"; + rev = "03e5862ec0d8d3b3f750e19fca3ee367e13c090e"; + sha256 = "184sd9dwkcba3zhxnz9grw8p81x05977p36cif2dgkhjdhv12map"; + }; + }); + docker-tini = tini.overrideAttrs (oldAttrs: rec { + name = "docker-init"; + src = fetchFromGitHub { + owner = "krallin"; + repo = "tini"; + rev = "949e6facb77383876aeff8a6944dde66b3089574"; + sha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw"; + }; + + # Do not remove static from make files as we want a static binary + patchPhase = '' + ''; + + NIX_CFLAGS_COMPILE = [ + "-DMINIMAL=ON" + ]; + }); + buildInputs = [ makeWrapper pkgconfig go-md2man go sqlite devicemapper btrfs-progs systemd @@ -52,16 +90,17 @@ stdenv.mkDerivation rec { installPhase = '' install -Dm755 ./bundles/${version}/dynbinary-client/docker-${version} $out/libexec/docker/docker install -Dm755 ./bundles/${version}/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd - install -Dm755 ./bundles/${version}/dynbinary-daemon/docker-proxy-${version} $out/libexec/docker/docker-proxy makeWrapper $out/libexec/docker/docker $out/bin/docker \ --prefix PATH : "$out/libexec/docker:$extraPath" makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \ --prefix PATH : "$out/libexec/docker:$extraPath" # docker uses containerd now - ln -s ${containerd}/bin/containerd $out/libexec/docker/docker-containerd - ln -s ${containerd}/bin/containerd-shim $out/libexec/docker/docker-containerd-shim - ln -s ${runc}/bin/runc $out/libexec/docker/docker-runc + ln -s ${docker-containerd}/bin/containerd $out/libexec/docker/docker-containerd + ln -s ${docker-containerd}/bin/containerd-shim $out/libexec/docker/docker-containerd-shim + ln -s ${docker-runc}/bin/runc $out/libexec/docker/docker-runc + ln -s ${docker-proxy}/bin/docker-proxy $out/libexec/docker/docker-proxy + ln -s ${docker-tini}/bin/tini-static $out/libexec/docker/docker-init # systemd install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service diff --git a/pkgs/applications/virtualization/docker/proxy.nix b/pkgs/applications/virtualization/docker/proxy.nix new file mode 100644 index 000000000000..a9f278c4d2a8 --- /dev/null +++ b/pkgs/applications/virtualization/docker/proxy.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, fetchFromGitHub, go, docker }: + +with lib; + +stdenv.mkDerivation rec { + name = "docker-proxy-${rev}"; + rev = "0f534354b813003a754606689722fe253101bc4e"; + + src = fetchFromGitHub { + inherit rev; + owner = "docker"; + repo = "libnetwork"; + sha256 = "1ah7h417llcq0xzdbp497pchb9m9qvjhrwajcjb0ybrs8v889m31"; + }; + + buildInputs = [ go ]; + + buildPhase = '' + mkdir -p .gopath/src/github.com/docker + ln -sf $(pwd) .gopath/src/github.com/docker/libnetwork + GOPATH="$(pwd)/.gopath:$(pwd)/Godeps/_workspace" go build -ldflags="$PROXY_LDFLAGS" -o docker-proxy ./cmd/proxy + ''; + + installPhase = '' + mkdir -p $out/bin + cp docker-proxy $out/bin + ''; + + meta = { + description = "Docker proxy binary to forward traffic between host and containers"; + license = licenses.asl20; + homepage = https://github.com/docker/libnetwork; + maintainers = with maintainers; [vdemeester]; + platforms = docker.meta.platforms; + }; +} |