actionFinally 不是 运行 cmd 在处理程序中调用

actionFinally not running cmd invoked inside handler

我有以下代码片段:

withContainer :: String -> (String -> Action a) -> Action a
  cid <= cmd "docker" [ "run" , "--rm", "-d", my_image ]
  ... 
  actionFinally (action containerName) $ do
    cmd_ "docker" [ "rm", "-f", filter (/= '\n') cid ]

无论操作是否成功,它都应该杀死容器。但是,我注意到当操作失败时,容器仍然留在上面并且 运行,这很烦人。我做错了什么?

这个代码示例看起来是正确的,单独测试它的变体确实有效。 https://github.com/ndmitchell/shake/issues/731 已经提出了一个错误来找出它在您的情况下不起作用的确切原因。