【问题标题】:Docker Compose: How to specify path to docker file while building as if in different directory?Docker Compose:如何在构建时指定 docker 文件的路径,就像在不同的目录中一样?
【发布时间】:2018-07-27 18:27:11
【问题描述】:

docker build -t test2 -f tests/low_conviction_integration/Dockerfile .

如果我需要从 Dockerfile 上方的目录中复制文件,我可以通过调用来完成它

docker build -t image_name -f path_to_docker_file/Dockerfile .

来自 ABOVE 目录

如何使用 docker-compose 完成相同的行为?我希望 docker-compose 与 Dockerfile 存在于同一目录中,以使用 Dockerfile 构建,但最终将其调用为就好像它位于 ABOVE 目录中一样,以便我可以复制正确的文件。我试过了

docker-compose -f path_to_docker_file_and_compose/docker-compose.yml up

来自 ABOVE 目录,但是当从 Dockefile 构建时,它抱怨构建时无法复制 ABOVE 目录中的文件(这意味着它正在从与 Dockerfile 相同的目录运行 docker build。我需要它运行从 ABOVE 目录构建)。

【问题讨论】:

    标签: docker docker-compose dockerfile


    【解决方案1】:

    可以这样完成,在 docker-compose.yml 中添加 build 并从 ABOVE 目录运行构建:

    version: '3.8'
    
    services:
      your_service:
        build: # "context" and "dockerfile" fields have to be under "build"
          context: .
          dockerfile: <Below_Directory>/Dockerfile
    

    【讨论】:

    • build &gt; context:相对于 docker-compose 命令运行目录。 build &gt; dockerfile :相对于build &gt; context 目录。
    【解决方案2】:

    您可能想要使用-p 标志

    Usage:
      docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
      docker-compose -h|--help
    
    Options:
      -f, --file FILE             Specify an alternate compose file (default: docker-compose.yml)
      -p, --project-name NAME     Specify an alternate project name (default: directory name)
    

    【讨论】:

      猜你喜欢
      • 2020-08-06
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多