~ruther/guix-local

877610c1ce3efa1743643a7589e4079cfd0b1917 — Giacomo Leidi 6 months ago b9b7351
services: oci: Fix OCI backed Shepherd services HOME variable.

This patch allows containers run with podman to run each with their own
specific user.

* doc/guix.texi: Fix wrong type for oci-container-configuration's
shepherd-dependencies field.
* gnu/services/containers.scm (oci-container-shepherd-service): In case
a specific container is not run through the user provisioned by the
oci-service-type, its environment is different from the globally
provisioned one and must be recomputed.

Change-Id: I5d636ad0616ced0af124002de4403da3067334de
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 7 insertions(+), 2 deletions(-)

M doc/guix.texi
M gnu/services/containers.scm
M doc/guix.texi => doc/guix.texi +1 -1
@@ 44867,7 44867,7 @@ is @code{#f}, the service has to be started manually with @command{herd start}.
Whether to have Shepherd restart the service when it stops, for instance when
the underlying process dies.

@item @code{shepherd-actions} (default: @code{'()}) (type: list-of-symbols)
@item @code{shepherd-actions} (default: @code{'()}) (type: list-of-shepherd-actions)
This is a list of @code{shepherd-action} records defining actions supported
by the service.


M gnu/services/containers.scm => gnu/services/containers.scm +6 -1
@@ 1277,7 1277,12 @@ by CONFIG through RUNTIME-CLI."
    (define environment-variables
      #~(append
         (list #$@host-environment)
         (list #$@(oci-runtime-state-runtime-environment runtime-state))))
         ;; In case this specific container is not run through the user
         ;; provisioned by the oci-service-type, its environment is different
         ;; from the globally provisioned one and must be recomputed.
         (list #$@(if (maybe-value-set? user)
                      (oci-runtime-system-environment runtime user)
                      (oci-runtime-state-runtime-environment runtime-state)))))
    (define invocation
      (oci-container-run-invocation
       (oci-container-configuration->oci-container-invocation