Hi Brandon,
'capture' and its friends 'run' and 'run*' are macros that treat their
arguments differently from what you would expect from a regular procedure.
Looking at the documentation of '(run COMMAND ...)', you will find that
COMMAND is also implicitly quasiquoted so subexpressions may be computed at
run-time by unquoting them.
which means that COMMAND is passed to the shell as-is, without being
evaluated. So the "not found" error is actually returned by the shell,
since it does not know what 'string-append' is.
In order to evaluate a quasi-quoted expression (or parts of it), you
must unquote it (or the parts in question).
This should work:
(capture ,(string-append "docker inspect " str)))
Hope that helps.
Best wishes,
-utz