diff mbox series

[bug#38720] system: linux-container: Recommend guix container

Message ID 20200105182729.GA1001@E5400
State Accepted
Headers show
Series [bug#38720] system: linux-container: Recommend guix container | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Efraim Flashner Jan. 5, 2020, 6:27 p.m. UTC
On Mon, Dec 30, 2019 at 11:05:02PM +0100, Ludovic Courtès wrote:
> Hi!
> 
> Efraim Flashner <efraim@flashner.co.il> skribis:
> 
> > I've been using guix containers on foreign systems to bring some Guixy
> > goodness to the unwashed sysadmins out there. When the container starts
> > up it displays a message like "Run 'sudo nsenter -a -t 65698' to get a
> > shell into it." Sometimes when I try to do that I'll get an error
> > message back about the system's nsenter not knowing about the '-a' flag.
> > I have found that using a 'guix container' command works well for me.
> 
> Oh.  I was conservative and thought that people would rather use
> “standard” tools.
> 
> > From f2cd59c9eb756e243a5a01e6cd3a6a6e58a02be6 Mon Sep 17 00:00:00 2001
> > From: Efraim Flashner <efraim@flashner.co.il>
> > Date: Mon, 23 Dec 2019 16:05:04 +0200
> > Subject: [PATCH] system: linux-container: Recommend guix container.
> >
> > * gnu/system/linux-container.scm (container-script)[script]: Recommend
> > using 'guix container' to get a shell inside the running container.
> 
> [...]
> 
> > -              ;; XXX: Should we recommend 'guix container exec'?  It's more
> > -              ;; verbose and doesn't bring much.
> > -              (info (G_ "Run 'sudo nsenter -a -t ~a' to get a shell into it.~%")
> > +              (info (G_ "Run 'sudo guix container exec ~a /run/current-system/profile/bin/bash --login' to get a shell into it.~%")
> >                      pid)
> 
> The comment is still correct: “guix container exec” is more verbose.
> :-)

I can update the comment :)

> Should we change it so that “guix container exec PID” without additional
> arguments runs /bin/sh by default, or something like that?

I've never really used docker, but I'm pretty sure when you enter a
docker container you also need to give it the path to a binary you want
to run.

I've thought about it a bit and now it displays this:

(ins)efraim@E5400 ~/workspace/guix$ sudo /gnu/store/7l5qdb0lw4bbghd17cam8pzdaz86zd3l-run-container
system container is running as PID 13663
Run 'sudo guix container exec 13663 /run/current-system/profile/bin/bash --login'
or run 'sudo nsenter -a -t 13663' to get a shell into it.

making '/gnu/store/8rrwm6wdyzl5i4g38va29azxki412nkr-system' the current system...
setting up setuid programs in '/run/setuid-programs'...
populating /etc from /gnu/store/lvxrcy913ga9g4sg549kk06krb8bbq6m-etc...

I think I like it like this with both options.

Comments

Ludovic Courtès Jan. 6, 2020, 9:56 a.m. UTC | #1
Hello!

Efraim Flashner <efraim@flashner.co.il> skribis:

> From 1e85542ad6de76f761a366ba8d83f61b63789384 Mon Sep 17 00:00:00 2001
> From: Efraim Flashner <efraim@flashner.co.il>
> Date: Mon, 23 Dec 2019 16:05:04 +0200
> Subject: [PATCH] system: linux-container: Recommend guix container.
>
> * gnu/system/linux-container.scm (container-script)[script]: Recommend
> using 'guix container' to get a shell inside the running container.

OK, looks reasonable to me.

Thanks!

Ludo’.
Efraim Flashner Jan. 6, 2020, 10:20 a.m. UTC | #2
Thanks. Patch pushed
diff mbox series

Patch

diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 2ab679ff3f..c8807398b3 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -2,6 +2,7 @@ 
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -194,11 +195,13 @@  that will be shared with the host system."
             (define (explain pid)
               ;; XXX: We can't quite call 'bindtextdomain' so there's actually
               ;; no i18n.
+              ;; XXX: Should we really give both options? 'guix container exec'
+              ;; is a more verbose command.  Hard to fail to enter the container
+              ;; when we list two options.
               (info (G_ "system container is running as PID ~a~%") pid)
-              ;; XXX: Should we recommend 'guix container exec'?  It's more
-              ;; verbose and doesn't bring much.
-              (info (G_ "Run 'sudo nsenter -a -t ~a' to get a shell into it.~%")
+              (info (G_ "Run 'sudo guix container exec ~a /run/current-system/profile/bin/bash --login'\n")
                     pid)
+              (info (G_ "or run 'sudo nsenter -a -t ~a' to get a shell into it.~%") pid)
               (newline (guix-warning-port)))
 
             (call-with-container file-systems