aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix29
1 files changed, 19 insertions, 10 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix b/infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix
index 4a611add8a12..85ddeb257405 100644
--- a/infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix
+++ b/infra/libkookie/nixpkgs/pkgs/build-support/docker/examples.nix
@@ -7,7 +7,7 @@
# $ nix-build '<nixpkgs>' -A dockerTools.examples.redis
# $ docker load < result
-{ pkgs, buildImage, pullImage, shadowSetup, buildImageWithNixDb }:
+{ pkgs, buildImage, buildLayeredImage, fakeNss, pullImage, shadowSetup, buildImageWithNixDb, pkgsCross }:
rec {
# 1. basic example
@@ -44,7 +44,7 @@ rec {
nginx = let
nginxPort = "80";
nginxConf = pkgs.writeText "nginx.conf" ''
- user nginx nginx;
+ user nobody nobody;
daemon off;
error_log /dev/stdout info;
pid /dev/null;
@@ -64,10 +64,13 @@ rec {
<html><body><h1>Hello from NGINX</h1></body></html>
'';
in
- buildImage {
+ buildLayeredImage {
name = "nginx-container";
tag = "latest";
- contents = pkgs.nginx;
+ contents = [
+ fakeNss
+ pkgs.nginx
+ ];
extraCommands = ''
# nginx still tries to read this directory even if error_log
@@ -75,12 +78,6 @@ rec {
mkdir -p var/log/nginx
mkdir -p var/cache/nginx
'';
- runAsRoot = ''
- #!${pkgs.stdenv.shell}
- ${shadowSetup}
- groupadd --system nginx
- useradd --system --gid nginx nginx
- '';
config = {
Cmd = [ "nginx" "-c" nginxConf ];
@@ -407,4 +404,16 @@ rec {
contents = [ pkgs.bash pkgs.coreutils ] ++ nonRootShadowSetup { uid = 999; user = "somebody"; };
};
+ # basic example, with cross compilation
+ cross = let
+ # Cross compile for x86_64 if on aarch64
+ crossPkgs =
+ if pkgs.system == "aarch64-linux" then pkgsCross.gnu64
+ else pkgsCross.aarch64-multiplatform;
+ in crossPkgs.dockerTools.buildImage {
+ name = "hello-cross";
+ tag = "latest";
+ contents = crossPkgs.hello;
+ };
+
}