coder-templates/image.nix

57 lines
1.2 KiB
Nix
Raw Normal View History

2024-04-24 17:09:10 +02:00
{
lib,
pkgs,
...
}:
pkgs.dockerTools.buildLayeredImage {
2024-04-24 17:09:10 +02:00
name = "nix-coder";
tag = "latest";
contents = pkgs.buildEnv {
2024-04-24 17:09:10 +02:00
name = "image-root";
paths = with pkgs; [
bash
bashInteractive
nix
coreutils-full
openssh
git
curl
ncurses
dockerTools.usrBinEnv
(writeShellScriptBin "reload-dotfiles" ''
${home-manager}/bin/home-manager switch --flake ''${DOTFILES_REPO:-$1}
'')
(writeTextDir "etc/nix/nix.conf" ''
experimental-features = nix-command flakes
'')
(writeTextDir "etc/os-release" ''
ID=nixos
'')
(writeTextDir "etc/passwd" "coder:x:1000:1000::/home/coder:/bin/bash")
(writeTextDir "etc/shadow" "coder:!:::::::")
(writeTextDir "etc/group" "coder:x:1000:")
(writeTextDir "etc/gshadow" "coder:x::")
];
pathsToLink = ["/bin" "/etc" "/usr"];
2024-04-24 17:09:10 +02:00
};
maxLayers = 5;
2024-04-24 17:09:10 +02:00
uid = 1000;
gid = 1000;
fakeRootCommands = ''
mkdir -p ./home/coder ./tmp ./nix/var/nix
chown -R 1000:1000 ./
'';
2024-04-26 20:45:24 +02:00
config = {
Cmd = ["/bin/bash"];
User = "1000:1000";
Env = [
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
"HOME=/home/coder"
"USER=coder"
];
2024-04-26 20:45:24 +02:00
};
2024-04-24 17:09:10 +02:00
}