mirror of
https://github.com/nix-community/docker-nixpkgs.git
synced 2026-01-12 04:40:42 -05:00
introduce importDir
avoid repeating myself to create a new image, create a new folder under ./images that contains a default.nix. That's it.
This commit is contained in:
@@ -88,6 +88,15 @@ All images are automatically built and pushed to Docker Hub.
|
||||
| [nixpkgs/nix](https://hub.docker.com/r/nixpkgs/nix) |  |  |
|
||||
| [nixpkgs/nix-unstable](https://hub.docker.com/r/nixpkgs/nix-unstable) |  |  |
|
||||
|
||||
## Adding new images
|
||||
|
||||
To add a new image to the project, create a new folder under
|
||||
`./images/<image-name>` with a default.nix that returns the docker image.
|
||||
|
||||
Then run `nix-build release.nix -A <image-name>` to test that it builds, and
|
||||
then use
|
||||
`docker load -i /nix/store/...<image-name>.tar.gz` to load and test the image.
|
||||
|
||||
## Related projects
|
||||
|
||||
The [docker-library](https://github.com/docker-library/official-images#readme)
|
||||
|
||||
21
lib/importDir.nix
Normal file
21
lib/importDir.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ lib }:
|
||||
|
||||
importFn: baseDir:
|
||||
let
|
||||
dirEntries =
|
||||
builtins.attrNames
|
||||
(lib.filterAttrs
|
||||
(k: v: v == "directory")
|
||||
(builtins.readDir baseDir));
|
||||
|
||||
absDirs =
|
||||
builtins.map
|
||||
(dir: "${toString baseDir}/${dir}")
|
||||
dirEntries;
|
||||
|
||||
imports =
|
||||
builtins.map
|
||||
(dir: { name = builtins.baseNameOf dir; value = importFn dir; })
|
||||
absDirs;
|
||||
in
|
||||
builtins.listToAttrs imports
|
||||
21
overlay.nix
21
overlay.nix
@@ -1,18 +1,11 @@
|
||||
_: pkgs: {
|
||||
# lib stuff can be in the top-level
|
||||
_: pkgs: let
|
||||
importDir = import ./lib/importDir.nix {
|
||||
inherit (pkgs) lib;
|
||||
};
|
||||
in {
|
||||
# builder stuff can be in the top-level
|
||||
buildCLIImage = pkgs.callPackage ./lib/buildCLIImage.nix {};
|
||||
|
||||
# docker images must be lower-cased
|
||||
docker-nixpkgs = {
|
||||
|
||||
bash = pkgs.callPackage ./images/bash {};
|
||||
busybox = pkgs.callPackage ./images/busybox {};
|
||||
curl = pkgs.callPackage ./images/curl {};
|
||||
docker-compose = pkgs.callPackage ./images/docker-compose {};
|
||||
kubectl = pkgs.callPackage ./images/kubectl {};
|
||||
kubernetes-helm = pkgs.callPackage ./images/kubernetes-helm {};
|
||||
nix = pkgs.callPackage ./images/nix {};
|
||||
nix-unstable = pkgs.callPackage ./images/nix-unstable {};
|
||||
|
||||
};
|
||||
docker-nixpkgs = importDir (path: pkgs.callPackage path {}) ./images;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user