Merge pull request #18481 from offlinehacker/pkgs/docker/1.12.1
docker: 1.10.3 -> 1.12.1
This commit is contained in:
commit
7a9dd489d6
@ -40,13 +40,25 @@ in
|
|||||||
};
|
};
|
||||||
storageDriver =
|
storageDriver =
|
||||||
mkOption {
|
mkOption {
|
||||||
type = types.enum ["aufs" "btrfs" "devicemapper" "overlay" "zfs"];
|
type = types.nullOr (types.enum ["aufs" "btrfs" "devicemapper" "overlay" "overlay2" "zfs"]);
|
||||||
default = "devicemapper";
|
default = null;
|
||||||
description =
|
description =
|
||||||
''
|
''
|
||||||
This option determines which Docker storage driver to use.
|
This option determines which Docker storage driver to use. By default
|
||||||
|
it let's docker automatically choose preferred storage driver.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
logDriver =
|
||||||
|
mkOption {
|
||||||
|
type = types.enum ["none" "json-file" "syslog" "journald" "gelf" "fluentd" "awslogs" "splunk" "etwlogs" "gcplogs"];
|
||||||
|
default = "journald";
|
||||||
|
description =
|
||||||
|
''
|
||||||
|
This option determines which Docker log driver to use.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
extraOptions =
|
extraOptions =
|
||||||
mkOption {
|
mkOption {
|
||||||
type = types.separatedString " ";
|
type = types.separatedString " ";
|
||||||
@ -88,7 +100,12 @@ in
|
|||||||
after = [ "network.target" ] ++ (optional cfg.socketActivation "docker.socket") ;
|
after = [ "network.target" ] ++ (optional cfg.socketActivation "docker.socket") ;
|
||||||
requires = optional cfg.socketActivation "docker.socket";
|
requires = optional cfg.socketActivation "docker.socket";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.docker}/bin/docker daemon --group=docker --storage-driver=${cfg.storageDriver} ${optionalString cfg.socketActivation "--host=fd://"} ${cfg.extraOptions}";
|
ExecStart = ''${pkgs.docker}/bin/dockerd \
|
||||||
|
--group=docker --log-driver=${cfg.logDriver} \
|
||||||
|
${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \
|
||||||
|
${optionalString cfg.socketActivation "--host=fd://"} \
|
||||||
|
${cfg.extraOptions}
|
||||||
|
'';
|
||||||
# I'm not sure if that limits aren't too high, but it's what
|
# I'm not sure if that limits aren't too high, but it's what
|
||||||
# goes in config bundled with docker itself
|
# goes in config bundled with docker itself
|
||||||
LimitNOFILE = 1048576;
|
LimitNOFILE = 1048576;
|
||||||
|
@ -11,9 +11,6 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
# FIXME: The default "devicemapper" storageDriver fails in NixOS VM
|
|
||||||
# tests.
|
|
||||||
virtualisation.docker.storageDriver = "overlay";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
42
pkgs/applications/virtualization/containerd/default.nix
Normal file
42
pkgs/applications/virtualization/containerd/default.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ stdenv, lib, fetchFromGitHub
|
||||||
|
, go, libapparmor, apparmor-parser, libseccomp }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "containerd-${version}";
|
||||||
|
version = "0.2.3";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "docker";
|
||||||
|
repo = "containerd";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0hlvbd5n4v337ywkc8mnbhp9m8lg8612krv45262n87c2ijyx09s";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ go ];
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
ln -s $(pwd) vendor/src/github.com/docker/containerd
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp bin/* $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
# remove references to go compiler
|
||||||
|
while read file; do
|
||||||
|
sed -ri "s,${go},$(echo "${go}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" $file
|
||||||
|
done < <(find $out/bin -type f 2>/dev/null)
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://containerd.tools/;
|
||||||
|
description = "A daemon to control runC";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ offline ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -1,32 +1,34 @@
|
|||||||
{ stdenv, fetchFromGitHub, makeWrapper
|
{ stdenv, lib, fetchFromGitHub, makeWrapper, pkgconfig, go-md2man
|
||||||
, go, sqlite, iproute, bridge-utils, devicemapper
|
, go, containerd, runc
|
||||||
, btrfs-progs, iptables, e2fsprogs, xz, utillinux
|
, sqlite, iproute, bridge-utils, devicemapper, systemd
|
||||||
, systemd, pkgconfig
|
, btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs
|
||||||
|
, procps
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md
|
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "docker-${version}";
|
name = "docker-${version}";
|
||||||
version = "1.10.3";
|
version = "1.12.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "docker";
|
owner = "docker";
|
||||||
repo = "docker";
|
repo = "docker";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0bmrafi0p3fm681y165ps97jki0a8ihl9f0bmpvi22nmc1v0sv6l";
|
sha256 = "079786dyydjfc8vb6djxh140pc7v16fjl5x2h2q420qc3mrfz5zd";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
makeWrapper go sqlite iproute bridge-utils devicemapper btrfs-progs
|
makeWrapper pkgconfig go-md2man go
|
||||||
iptables e2fsprogs systemd pkgconfig stdenv.glibc stdenv.glibc.static
|
sqlite devicemapper btrfs-progs systemd
|
||||||
];
|
];
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
DOCKER_BUILDTAGS = [ "journald" ]
|
DOCKER_BUILDTAGS = []
|
||||||
|
++ optional (systemd != null) [ "journald" ]
|
||||||
++ optional (btrfs-progs == null) "exclude_graphdriver_btrfs"
|
++ optional (btrfs-progs == null) "exclude_graphdriver_btrfs"
|
||||||
++ optional (devicemapper == null) "exclude_graphdriver_devicemapper";
|
++ optional (devicemapper == null) "exclude_graphdriver_devicemapper";
|
||||||
|
|
||||||
@ -39,15 +41,27 @@ stdenv.mkDerivation rec {
|
|||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
export AUTO_GOPATH=1
|
export AUTO_GOPATH=1
|
||||||
export DOCKER_GITCOMMIT="20f81dde"
|
export DOCKER_GITCOMMIT="23cf638"
|
||||||
./hack/make.sh dynbinary
|
./hack/make.sh dynbinary
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
outputs = ["out" "man"];
|
||||||
|
|
||||||
|
extraPath = makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
install -Dm755 ./bundles/${version}/dynbinary/docker-${version} $out/libexec/docker/docker
|
install -Dm755 ./bundles/${version}/dynbinary-client/docker-${version} $out/libexec/docker/docker
|
||||||
install -Dm755 ./bundles/${version}/dynbinary/dockerinit-${version} $out/libexec/docker/dockerinit
|
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 \
|
makeWrapper $out/libexec/docker/docker $out/bin/docker \
|
||||||
--prefix PATH : "${stdenv.lib.makeBinPath [ iproute iptables e2fsprogs xz utillinux ]}"
|
--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
|
||||||
|
|
||||||
# systemd
|
# systemd
|
||||||
install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
|
install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
|
||||||
@ -56,9 +70,31 @@ stdenv.mkDerivation rec {
|
|||||||
install -Dm644 ./contrib/completion/bash/docker $out/share/bash-completion/completions/docker
|
install -Dm644 ./contrib/completion/bash/docker $out/share/bash-completion/completions/docker
|
||||||
install -Dm644 ./contrib/completion/fish/docker.fish $out/share/fish/vendor_completions.d/docker.fish
|
install -Dm644 ./contrib/completion/fish/docker.fish $out/share/fish/vendor_completions.d/docker.fish
|
||||||
install -Dm644 ./contrib/completion/zsh/_docker $out/share/zsh/site-functions/_docker
|
install -Dm644 ./contrib/completion/zsh/_docker $out/share/zsh/site-functions/_docker
|
||||||
|
|
||||||
|
# Include contributed man pages
|
||||||
|
man/md2man-all.sh -q
|
||||||
|
manRoot="$man/share/man"
|
||||||
|
mkdir -p "$manRoot"
|
||||||
|
for manDir in man/man?; do
|
||||||
|
manBase="$(basename "$manDir")" # "man1"
|
||||||
|
for manFile in "$manDir"/*; do
|
||||||
|
manName="$(basename "$manFile")" # "docker-build.1"
|
||||||
|
mkdir -p "$manRoot/$manBase"
|
||||||
|
gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
|
||||||
|
done
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
preFixup = ''
|
||||||
|
# remove references to go compiler, gcc and glibc
|
||||||
|
while read file; do
|
||||||
|
sed -ri "s,${go},$(echo "${go}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" $file
|
||||||
|
sed -ri "s,${stdenv.cc.cc},$(echo "${stdenv.cc.cc}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" $file
|
||||||
|
sed -ri "s,${stdenv.glibc.dev},$(echo "${stdenv.glibc.dev}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" $file
|
||||||
|
done < <(find $out -type f 2>/dev/null)
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
homepage = http://www.docker.com/;
|
homepage = http://www.docker.com/;
|
||||||
description = "An open source project to pack, ship and run any application as a lightweight container";
|
description = "An open source project to pack, ship and run any application as a lightweight container";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
|
62
pkgs/applications/virtualization/runc/default.nix
Normal file
62
pkgs/applications/virtualization/runc/default.nix
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{ stdenv, lib, fetchFromGitHub, go-md2man
|
||||||
|
, go, pkgconfig, libapparmor, apparmor-parser, libseccomp }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "runc-${version}";
|
||||||
|
version = "2016-06-15";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "opencontainers";
|
||||||
|
repo = "runc";
|
||||||
|
rev = "cc29e3dded8e27ba8f65738f40d251c885030a28";
|
||||||
|
sha256 = "18fwb3kq10zhhx184yn3j396gpbppy3y4ypb8m2b2pdms39s6pyx";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "man" ];
|
||||||
|
|
||||||
|
hardeningDisable = ["fortify"];
|
||||||
|
|
||||||
|
buildInputs = [ go-md2man go pkgconfig libseccomp libapparmor apparmor-parser ];
|
||||||
|
|
||||||
|
makeFlags = ''BUILDTAGS+=seccomp BUILDTAGS+=apparmor'';
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
patchShebangs .
|
||||||
|
substituteInPlace libcontainer/apparmor/apparmor.go \
|
||||||
|
--replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -Dm755 runc $out/bin/runc
|
||||||
|
|
||||||
|
# Include contributed man pages
|
||||||
|
man/md2man-all.sh -q
|
||||||
|
manRoot="$man/share/man"
|
||||||
|
mkdir -p "$manRoot"
|
||||||
|
for manDir in man/man?; do
|
||||||
|
manBase="$(basename "$manDir")" # "man1"
|
||||||
|
for manFile in "$manDir"/*; do
|
||||||
|
manName="$(basename "$manFile")" # "docker-build.1"
|
||||||
|
mkdir -p "$manRoot/$manBase"
|
||||||
|
gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
# remove references to go compiler
|
||||||
|
while read file; do
|
||||||
|
sed -ri "s,${go},$(echo "${go}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" $file
|
||||||
|
done < <(find $out/bin -type f 2>/dev/null)
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://runc.io/;
|
||||||
|
description = "A CLI tool for spawning and running containers according to the OCI specification";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ offline ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
25
pkgs/development/tools/misc/md2man/default.nix
Normal file
25
pkgs/development/tools/misc/md2man/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ stdenv, lib, buildGoPackage, go, fetchFromGitHub }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
buildGoPackage rec {
|
||||||
|
name = "go-md2man-${version}";
|
||||||
|
version = "1.0.6";
|
||||||
|
|
||||||
|
goPackagePath = "github.com/cpuguy83/go-md2man";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
rev = "v${version}";
|
||||||
|
owner = "cpuguy83";
|
||||||
|
repo = "go-md2man";
|
||||||
|
sha256 = "1rm3zjrmfpzy0l3qp02xmd5pqzl77pdql9pbxhl0k1qw2vfzrjv6";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Go tool to convert markdown to man pages";
|
||||||
|
license = licenses.mit;
|
||||||
|
homepage = https://github.com/cpuguy83/go-md2man;
|
||||||
|
maintainers = with maintainers; [offline];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -6588,6 +6588,8 @@ in
|
|||||||
maven = maven3;
|
maven = maven3;
|
||||||
maven3 = callPackage ../development/tools/build-managers/apache-maven { };
|
maven3 = callPackage ../development/tools/build-managers/apache-maven { };
|
||||||
|
|
||||||
|
go-md2man = callPackage ../development/tools/misc/md2man {};
|
||||||
|
|
||||||
minify = callPackage ../development/web/minify { };
|
minify = callPackage ../development/web/minify { };
|
||||||
|
|
||||||
minizinc = callPackage ../development/tools/minizinc { };
|
minizinc = callPackage ../development/tools/minizinc { };
|
||||||
@ -12693,6 +12695,8 @@ in
|
|||||||
conkeror-unwrapped = callPackage ../applications/networking/browsers/conkeror { };
|
conkeror-unwrapped = callPackage ../applications/networking/browsers/conkeror { };
|
||||||
conkeror = wrapFirefox conkeror-unwrapped { };
|
conkeror = wrapFirefox conkeror-unwrapped { };
|
||||||
|
|
||||||
|
containerd = callPackage ../applications/virtualization/containerd { };
|
||||||
|
|
||||||
cpp_ethereum = callPackage ../applications/misc/webthree-umbrella {
|
cpp_ethereum = callPackage ../applications/misc/webthree-umbrella {
|
||||||
withOpenCL = true;
|
withOpenCL = true;
|
||||||
|
|
||||||
@ -12796,9 +12800,7 @@ in
|
|||||||
dmtx-utils = callPackage (callPackage ../tools/graphics/dmtx-utils) {
|
dmtx-utils = callPackage (callPackage ../tools/graphics/dmtx-utils) {
|
||||||
};
|
};
|
||||||
|
|
||||||
docker = callPackage ../applications/virtualization/docker {
|
docker = callPackage ../applications/virtualization/docker { };
|
||||||
btrfs-progs = btrfs-progs_4_4_1;
|
|
||||||
};
|
|
||||||
|
|
||||||
docker-gc = callPackage ../applications/virtualization/docker/gc.nix { };
|
docker-gc = callPackage ../applications/virtualization/docker/gc.nix { };
|
||||||
|
|
||||||
@ -14683,6 +14685,8 @@ in
|
|||||||
|
|
||||||
rubyripper = callPackage ../applications/audio/rubyripper {};
|
rubyripper = callPackage ../applications/audio/rubyripper {};
|
||||||
|
|
||||||
|
runc = callPackage ../applications/virtualization/runc {};
|
||||||
|
|
||||||
rxvt = callPackage ../applications/misc/rxvt { };
|
rxvt = callPackage ../applications/misc/rxvt { };
|
||||||
|
|
||||||
# urxvt
|
# urxvt
|
||||||
|
Loading…
Reference in New Issue
Block a user