-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker.nix
37 lines (37 loc) · 1.12 KB
/
docker.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
let
nixpkgs = (import ./nixpkgs.nix).nixpkgs;
pkgs = nixpkgs { };
# In order to build docker on Mac OS, we have to build binary
# suitable for running in docker on linux.
pkgsCross = nixpkgs { crossSystem = pkgs.lib.systems.examples.gnu64; };
# But for now it doesn't work without splicing dependencies
# via callPackage machinery. So let's leave as is
# project = (import ./default.nix) { pkgs = pkgsCross; };
project = (import ./default.nix) { pkgs = pkgs; };
# Standard docker image
# import to docker daemon with
# docker load < ./result
# and then
# docker run random-sum-0.1
standard = pkgs.callPackage (
{ dockerTools }:
dockerTools.buildImage {
name = project.name;
tag = "latest";
contents = project;
config = {
Cmd = [ "${project}/bin/random-sum" ];
WorkingDir = "${project}";
};
}) { };
# Image with automatic layering, so glibc will take its own layer
layered = pkgs.callPackage (
{ dockerTools }:
dockerTools.buildLayeredImage {
name = project.name;
config.Cmd = [ "${project}/bin/random-sum" ];
}) { };
in
{
inherit standard layered;
}