2024-04-24 17:09:10 +02:00
|
|
|
{
|
|
|
|
|
lib,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
|
|
|
|
}:
|
2024-04-27 15:12:10 +02:00
|
|
|
pkgs.dockerTools.buildLayeredImage {
|
2024-04-24 17:09:10 +02:00
|
|
|
name = "nix-coder";
|
|
|
|
|
tag = "latest";
|
|
|
|
|
|
2024-04-27 15:12:10 +02:00
|
|
|
contents = pkgs.buildEnv {
|
2024-04-24 17:09:10 +02:00
|
|
|
name = "image-root";
|
2024-04-24 23:51:35 +02:00
|
|
|
paths = [
|
2024-04-27 15:12:10 +02:00
|
|
|
pkgs.bash
|
2024-04-24 23:51:35 +02:00
|
|
|
pkgs.bashInteractive
|
2024-04-27 15:12:10 +02:00
|
|
|
pkgs.nix
|
2024-04-25 00:07:30 +02:00
|
|
|
pkgs.coreutils-full
|
2024-04-27 17:56:06 +02:00
|
|
|
pkgs.openssh
|
2024-04-27 15:12:10 +02:00
|
|
|
pkgs.git
|
2024-04-25 00:42:29 +02:00
|
|
|
pkgs.curl
|
2024-04-27 19:52:51 +02:00
|
|
|
(pkgs.writeShellScriptBin "reload-dotfiles" ''
|
|
|
|
|
${pkgs.home-manager}/bin/home-manager switch --flake ''${DOTFILES_REPO:-$1}
|
|
|
|
|
'')
|
2024-05-07 00:48:23 +02:00
|
|
|
(pkgs.writeTextDir "etc/nix/nix.conf" ''
|
|
|
|
|
experimental-features = nix-command flakes
|
|
|
|
|
'')
|
2024-04-26 21:22:17 +02:00
|
|
|
(pkgs.writeTextDir "etc/passwd" "coder:x:1000:1000::/home/coder:/bin/bash")
|
2024-04-27 15:12:10 +02:00
|
|
|
(pkgs.writeTextDir "etc/shadow" "coder:!:::::::")
|
|
|
|
|
(pkgs.writeTextDir "etc/group" "coder:x:1000:")
|
|
|
|
|
(pkgs.writeTextDir "etc/gshadow" "coder:x::")
|
2024-04-24 23:51:35 +02:00
|
|
|
];
|
2024-04-26 21:22:17 +02:00
|
|
|
pathsToLink = ["/bin" "/etc"];
|
2024-04-24 17:09:10 +02:00
|
|
|
};
|
2024-04-27 15:12:10 +02:00
|
|
|
maxLayers = 5;
|
2024-04-24 17:09:10 +02:00
|
|
|
|
2024-05-07 00:48:23 +02:00
|
|
|
uid = 1000;
|
|
|
|
|
gid = 1000;
|
2024-04-27 15:12:10 +02:00
|
|
|
fakeRootCommands = ''
|
2024-05-07 00:48:23 +02:00
|
|
|
mkdir -p /home/coder /tmp /nix/var/nix
|
|
|
|
|
chown -R 1000:1000 /
|
2024-04-27 15:12:10 +02:00
|
|
|
'';
|
2024-05-07 00:48:23 +02:00
|
|
|
enableFakechroot = true;
|
|
|
|
|
|
2024-04-26 20:45:24 +02:00
|
|
|
config = {
|
|
|
|
|
Cmd = ["/bin/bash"];
|
2024-05-07 00:48:23 +02:00
|
|
|
User = "1000:1000";
|
2024-04-26 21:22:17 +02:00
|
|
|
Env = [
|
|
|
|
|
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
|
|
|
"HOME=/home/coder"
|
2024-04-27 15:12:10 +02:00
|
|
|
"USER=coder"
|
2024-04-26 21:22:17 +02:00
|
|
|
];
|
2024-04-26 20:45:24 +02:00
|
|
|
};
|
2024-04-24 17:09:10 +02:00
|
|
|
}
|