【问题标题】:How do I use heredoc in a Makefile?如何在 Makefile 中使用 heredoc?
【发布时间】:2018-10-27 22:21:58
【问题描述】:

如何在 Makefile 中使用 heredoc? 此 Makefile 不起作用:

EXECUTABLE=server

build: 
     docker build -t $(EXECUTABLE) - << EOF \
         FROM scratch \
         ADD bin/$(EXECUTABLE) /bin/$(EXECUTABLE) \
         CMD ["/bin/$(EXECUTABLE)"] \
     EOF

【问题讨论】:

  • 什么是最简单的 docker 命令,可以在命令行上运行,但放在 makefile 中就不行了?
  • 不要尝试。围绕命令创建一个 shell 脚本包装器并调用它。
  • Heredoc in a Makefile?的可能重复

标签: makefile heredoc


【解决方案1】:

看起来在 Makefile 中使用 heredocs 浏览文件可以解决一半的问题:

build: Dockerfile
    docker build -t $(EXECUTABLE) .
    rm Dockerfile

.ONESHELL:
Dockerfile: 
    cat <<- EOF > $@
        FROM scratch
        ADD bin/$(EXECUTABLE) /bin/$(EXECUTABLE)
        CMD ["/bin/$(EXECUTABLE)"]
    EOF

不过,将它全部内联会很好。

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 2019-06-08
    • 2012-10-26
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多