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, ... }: { 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 = { virtualisation.podman.enable = true;
enable = true;
# Rootless containers via user quadlets
};
# Write quadlet files into the containers user's config directory # Sync everything in ./containers/ to the containers user's quadlet directory
systemd.tmpfiles.rules = [ system.activationScripts.containers-quadlets = {
"d /var/lib/containers/.config 0755 containers containers -" text = ''
"d /var/lib/containers/.config/containers 0755 containers containers -" mkdir -p /var/lib/containers/.config/containers/systemd
"d /var/lib/containers/.config/containers/systemd 0755 containers containers -" cp -r ${./containers}/* /var/lib/containers/.config/containers/systemd/
"L+ /var/lib/containers/.config/containers/systemd/nginx-example.container - - - - ${nginxQuadlet}" chown -R containers:containers /var/lib/containers/.config
]; '';
deps = [ "users" ];
};
} }