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