refactor: use activation script to sync containers folder
This commit is contained in:
@@ -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" ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user