Skip to content
Permalink
Browse files

add meta attributes to all images

augment the images with meta attributes from the input packages.

and then use the meta.description as dockerhub metadata.
  • Loading branch information...
zimbatm committed Feb 17, 2019
1 parent 8cbbfe7 commit 2aefa0599ec965c17de3eed5718375b3e0bd3a81
Showing with 70 additions and 57 deletions.
  1. +6 −2 dockerhub-metadata
  2. +24 −20 lib/buildCLIImage.nix
  3. +37 −34 nix/default.nix
  4. +3 −1 overlay.nix
@@ -11,7 +11,11 @@ password=$2
org=${3:-nixpkgs}
user=$username:$password

releases_json=$(nix-instantiate ./release.nix --strict --eval --json)
nix_eval() {
nix-instantiate --strict --eval --json "$@"
}

releases_json=$(nix_eval release.nix)

to_json() {
local desc=$1 full_desc=$2
@@ -25,7 +29,7 @@ echo "=== Updating Docker Hub project descriptions"

for attr in $(echo "$releases_json" | jq -r "keys[]") ; do
echo "--- $attr"
desc="$attr is automatically built from nix-community/docker-nixpkgs"
desc=$(nix_eval ./release.nix -A "$attr.meta.description" | jq -r .)

if [[ -f "$attr/README.md" ]]; then
full_desc=$(< "$attr/README.md")
@@ -5,28 +5,32 @@
{ drv # derivation to build the image for
# Name of the binary to run by default
, binName ? (builtins.parseDrvName drv.name).name
, meta ? drv.meta
}:
dockerTools.buildLayeredImage {
name = drv.name;
let
image = 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"
contents = [
# add a /bin/sh on all images
busybox
# most program need TLS certs
cacert
drv
];
Labels = {
# https://github.com/microscaling/microscaling/blob/55a2d7b91ce7513e07f8b1fd91bbed8df59aed5a/Dockerfile#L22-L33
"org.label-schema.vcs-ref" = "master";
"org.label-schema.vcs-url" = "https://github.com/nix-community/docker-nixpkgs";

config = {
Cmd = [ "/bin/${binName}" ];
Env = [
"PATH=/bin"
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
];
Labels = {
# https://github.com/microscaling/microscaling/blob/55a2d7b91ce7513e07f8b1fd91bbed8df59aed5a/Dockerfile#L22-L33
"org.label-schema.vcs-ref" = "master";
"org.label-schema.vcs-url" = "https://github.com/nix-community/docker-nixpkgs";
};
};
};
}
in
image // { meta = meta // image.meta; }
@@ -10,44 +10,47 @@
, nix
, xz
}:
dockerTools.buildImageWithNixDb {
inherit (nix) name;
let
image = dockerTools.buildImageWithNixDb {
inherit (nix) name;

contents = [
./root
coreutils
# add /bin/sh
bash
nix
contents = [
./root
coreutils
# add /bin/sh
bash
nix

# runtime dependencies of nix
cacert
gitMinimal
gnutar
gzip
xz
# runtime dependencies of nix
cacert
gitMinimal
gnutar
gzip
xz

# for haskell binaries
iana-etc
];
# for haskell binaries
iana-etc
];

extraCommands = ''
# for /usr/bin/env
mkdir usr
ln -s ../bin usr/bin
extraCommands = ''
# for /usr/bin/env
mkdir usr
ln -s ../bin usr/bin
# make sure /tmp exists
mkdir -m 0777 tmp
'';
# make sure /tmp exists
mkdir -m 0777 tmp
'';

config = {
Cmd = [ "/bin/bash" ];
Env = [
"ENV=/etc/profile.d/nix.sh"
"NIX_PATH=nixpkgs=channel:nixpkgs-unstable"
"PAGER=cat"
"PATH=/usr/bin:/bin"
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
];
config = {
Cmd = [ "/bin/bash" ];
Env = [
"ENV=/etc/profile.d/nix.sh"
"NIX_PATH=nixpkgs=channel:nixpkgs-unstable"
"PAGER=cat"
"PATH=/usr/bin:/bin"
"SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt"
];
};
};
}
in
image // { meta = nix.meta // image.meta; }
@@ -18,7 +18,9 @@ _: pkgs: {
kubectl = pkgs.callPackage ./kubectl {};
kubernetes-helm = pkgs.callPackage ./kubernetes-helm {};
nix = pkgs.callPackage ./nix {};
nix-unstable = nix.overrideAttrs (self: { nix = pkgs.nixUnstable; });
nix-unstable = nix.override {
nix = pkgs.nixUnstable;
};

};
}

0 comments on commit 2aefa05

Please sign in to comment.
You can’t perform that action at this time.