unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Jesse Millwood <jesse_m@fastmail.com>
To: help-guix@gnu.org
Subject: Re: Debugging Shepherd Daemon. Possible escape char issue.
Date: Tue, 10 Dec 2024 07:11:59 -0500	[thread overview]
Message-ID: <bf088d7c-e2a0-4e00-af1f-37ce5ee168dc@fastmail.com> (raw)
In-Reply-To: <e3e91f86-dab4-488e-8259-8a00e424d5e4@fastmail.com>

For what it's worth I figured this out with help from giacomo of the 
gocix project. He has a really neat herd action where you can query the 
command line invocation that was used. That helped quite a bit to figure 
out what the issue was. Turns out for passing labels to the docker 
invocation you have to wrap the argument in escaped quotes so that the 
whole thing is passed to the --label argument as a string:

                      (oci-extra-arguments
                       '("--label" 
"\"traefik.http.routers.whoami.rule=Host(`whoami.geekslab`)\""))

The backticks used here are because that is a string literal that is 
evaluated by docker, which is written in the Go programming language.

Jesse


On 11/29/24 14:08, Jesse Millwood wrote:
> Hello,
>
> I am trying to run some docker services as an 
> oci-service-configuration entry.
>
> I have one simple one running fine. However the one that I am having 
> trouble with, I assume is an issue with quoting and escaping. I don't 
> see any issue in /var/log/messages. I'd like to be able to see the 
> actual command that Shepherd is trying to run. Is there a way to do that?
>
> The Shepherd service I am trying to run is this:
>
>
> (service oci-container-service-type
>   (list
>    (oci-container-configuration
>     (image "traefik/whoami")
>     (network "traefik-network")
>     (extra-arguments
>      '("--label"
> "traefik.http.routers.whoami.rule=Host\(\\\"whoami.geekslab\\\")"))
>     (log-file "/var/docker.whoami.log")
>    )
> ))
>
> The only feedback I get is this:
>
> admin@geekslab ~/geekslab/scripts$ sudo herd status docker-whoami
> Status of docker-whoami:
>  It is stopped.
>  It is enabled.
>  Provides (docker-whoami).
>  Requires (dockerd user-processes).
>  Will not be respawned.
>
> admin@geekslab ~/geekslab/scripts$ sudo herd start docker-whoami
>  Service user-homes has been started.
>  Service dockerd depends on elogind.
>  Service docker-whoami depends on dockerd.
>  herd: error: failed to start service docker-whoami
>
> As stated before, nothing in /var/log/messages. I'm not sure where 
> else to look. I feel like I'm missing something when trying to debug 
> Shepherd services. I've also tried a lot of different combinations of 
> escapes and such.
>
> If I run the following from the shell though, it works fine:
>
> sudo docker run --rm --name whoami --label 
> "traefik.http.routers.whoami.rule=Host(\"whoami.geekslab\")" 
> traefik/whoami
>
> Notice the escaped quotes that need to be passed through. I am 
> essentially trying to daemonize this docker run command.
>
> Any Shepherd pointers here would be appreciated!
>



  parent reply	other threads:[~2024-12-10 12:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-29 19:08 Debugging Shepherd Daemon. Possible escape char issue Jesse Millwood
2024-11-29 21:25 ` Felix Lechner via
2024-11-29 23:52   ` Jesse Millwood
2024-12-10 12:11 ` Jesse Millwood [this message]
2024-12-10 13:17   ` Jesse Millwood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bf088d7c-e2a0-4e00-af1f-37ce5ee168dc@fastmail.com \
    --to=jesse_m@fastmail.com \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).