abstract CLI image generation
and add busybox in all the images
This commit is contained in:
parent
10e9882705
commit
9baba96f89
6 changed files with 43 additions and 68 deletions
|
@ -1,20 +1,6 @@
|
||||||
{ dockerTools
|
{ buildCLIImage
|
||||||
, cacert
|
|
||||||
, curl
|
, curl
|
||||||
}:
|
}:
|
||||||
dockerTools.buildLayeredImage {
|
buildCLIImage {
|
||||||
inherit (curl) name;
|
drv = curl;
|
||||||
|
|
||||||
contents = [
|
|
||||||
cacert
|
|
||||||
curl
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
Entrypoint = [ "/bin/curl" ];
|
|
||||||
Env = [
|
|
||||||
"PATH=/bin"
|
|
||||||
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,6 @@
|
||||||
{ dockerTools
|
{ buildCLIImage
|
||||||
, cacert
|
|
||||||
, docker-compose
|
, docker-compose
|
||||||
}:
|
}:
|
||||||
dockerTools.buildLayeredImage {
|
buildCLIImage {
|
||||||
inherit (docker-compose) name;
|
drv = docker-compose;
|
||||||
|
|
||||||
contents = [
|
|
||||||
cacert
|
|
||||||
docker-compose
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
Entrypoint = [ "/bin/docker-compose" ];
|
|
||||||
Env = [
|
|
||||||
"PATH=/bin"
|
|
||||||
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,6 @@
|
||||||
{ dockerTools
|
{ buildCLIImage
|
||||||
, cacert
|
|
||||||
, kubectl
|
, kubectl
|
||||||
}:
|
}:
|
||||||
dockerTools.buildLayeredImage {
|
buildCLIImage {
|
||||||
inherit (kubectl) name;
|
drv = kubectl;
|
||||||
|
|
||||||
contents = [
|
|
||||||
cacert
|
|
||||||
kubectl
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
Entrypoint = [ "/bin/kubectl" ];
|
|
||||||
Env = [
|
|
||||||
"PATH=/bin"
|
|
||||||
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,7 @@
|
||||||
{ dockerTools
|
{ buildCLIImage
|
||||||
, cacert
|
|
||||||
, kubernetes-helm
|
, kubernetes-helm
|
||||||
}:
|
}:
|
||||||
dockerTools.buildLayeredImage {
|
buildCLIImage {
|
||||||
inherit (kubernetes-helm) name;
|
drv = kubernetes-helm;
|
||||||
|
binName = "helm";
|
||||||
contents = [
|
|
||||||
cacert
|
|
||||||
kubernetes-helm
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
Entrypoint = [ "/bin/helm" ];
|
|
||||||
Env = [
|
|
||||||
"PATH=/bin"
|
|
||||||
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
27
lib/buildCLIImage.nix
Normal file
27
lib/buildCLIImage.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ dockerTools
|
||||||
|
, busybox
|
||||||
|
, cacert
|
||||||
|
}:
|
||||||
|
{ drv # derivation to build the image for
|
||||||
|
# Name of the binary to run by default
|
||||||
|
, binName ? (builtins.parseDrvName drv.name).name
|
||||||
|
}:
|
||||||
|
dockerTools.buildLayeredImage {
|
||||||
|
name = drv.name;
|
||||||
|
|
||||||
|
contents = [
|
||||||
|
# add a /bin/sh on all images
|
||||||
|
busybox
|
||||||
|
# most program need TLS certs
|
||||||
|
cacert
|
||||||
|
drv
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
Cmd = [ "/bin/${binName}" ];
|
||||||
|
Env = [
|
||||||
|
"PATH=/bin"
|
||||||
|
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +1,7 @@
|
||||||
_: pkgs: {
|
_: pkgs: {
|
||||||
|
# lib stuff can be in the top-level
|
||||||
|
buildCLIImage = pkgs.callPackage ./lib/buildCLIImage.nix {};
|
||||||
|
|
||||||
# docker images must be lower-cased
|
# docker images must be lower-cased
|
||||||
docker-nixpkgs = rec {
|
docker-nixpkgs = rec {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue