meta: Add dev container

Note that this container uses home-manager from the Nix flake on the
host system, which is pretty cool.

Currently modules in this repository *don't* differentiate between
home-manager and nixos, but this could be changed in the future to
support e.g. my home-manager neovim config on a non-nixos system.
This commit is contained in:
Donovan Glover 2023-06-12 14:51:30 -04:00
parent 9692307bd9
commit cbdd5998ec
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
2 changed files with 63 additions and 0 deletions

62
containers/dev.nix Normal file
View File

@ -0,0 +1,62 @@
{ home-manager, ... }:
let
VARIABLES = import ../src/variables.nix;
in
{
containers.dev = {
privateNetwork = true;
ephemeral = true;
autoStart = true;
hostAddress = "192.168.100.30";
localAddress = "192.168.100.31";
bindMounts = {
"/mnt" = {
hostPath = "/home/${VARIABLES.username}/containers/dev";
isReadOnly = false;
};
};
config = { pkgs, lib, ... }: {
imports = [
home-manager.nixosModules.home-manager
../modules/git
../modules/neovim
];
programs = {
fish.enable = true;
neovim.enable = true;
starship.enable = true;
};
users = {
defaultUserShell = pkgs.fish;
mutableUsers = false;
allowNoPasswordLogin = true;
users.user = {
isNormalUser = true;
home = "/home/user";
};
};
home-manager.users.user = { pkgs, ... }: {
home.packages = [ pkgs.atool pkgs.httpie ];
home.stateVersion = VARIABLES.stateVersion;
};
environment = {
shells = with pkgs; [ fish ];
variables = { TERM = "xterm-kitty"; };
defaultPackages = [ ];
};
environment.systemPackages = with pkgs; [ kitty ];
system.stateVersion = VARIABLES.stateVersion;
};
};
}

View File

@ -15,6 +15,7 @@ let VARIABLES = import ./variables.nix; in {
../modules
../containers/rar.nix
../containers/wine.nix
../containers/dev.nix
];
# locale