0

drake用来编排一个工作流程,如果一个外部闪亮的应用程序(存储在project_dir/shiny/app.R)发生变化,我想触发一个 docker 构建。

shiny_plan <- drake_plan(

  docker_build = system(command = "docker build shiny/. -t docker.com/my-dash")

)

鉴于这无助于创建,我如何检测app.R到触发目标的变化?docker_builddrakeapp.R

最好的

4

1 回答 1

3

你可以在file_in()任何你想要的地方放一个。

shiny_plan <- drake_plan(
  docker_build = {
    file_in("app.R")
    system(command = "docker build shiny/. -t docker.com/my-dash")
  }
)

或者,您可以使 Docker 构建依赖于 UI 和服务器对象。这样,如果您所做的只是更改应用程序代码中的注释或空格,Docker 就不会不必要地触发。

shiny_plan <- drake_plan(
  docker_build = {
    ui
    server
    system(command = "docker build shiny/. -t docker.com/my-dash")
  }
)
于 2019-10-31T11:01:13.923 回答