refactor: use activation script to sync containers folder

This commit is contained in:
2026-07-18 04:06:47 +01:00
parent 874ba68434
commit acdc231421

View File

@@ -1,29 +1,14 @@
{ config, lib, pkgs, ... }:
let
nginxQuadlet = pkgs.writeText "nginx-example.container" ''
[Container]
Image=nginx:latest
PublishPort=9999:80
[Service]
Restart=always
[Install]
WantedBy=default.target
'';
in
{
virtualisation.podman = {
enable = true;
# Rootless containers via user quadlets
};
virtualisation.podman.enable = true;
# Write quadlet files into the containers user's config directory
systemd.tmpfiles.rules = [
"d /var/lib/containers/.config 0755 containers containers -"
"d /var/lib/containers/.config/containers 0755 containers containers -"
"d /var/lib/containers/.config/containers/systemd 0755 containers containers -"
"L+ /var/lib/containers/.config/containers/systemd/nginx-example.container - - - - ${nginxQuadlet}"
];
# Sync everything in ./containers/ to the containers user's quadlet directory
system.activationScripts.containers-quadlets = {
text = ''
mkdir -p /var/lib/containers/.config/containers/systemd
cp -r ${./containers}/* /var/lib/containers/.config/containers/systemd/
chown -R containers:containers /var/lib/containers/.config
'';
deps = [ "users" ];
};
}