docker-compose的context或workdir

Roo*_*omy 38 docker docker-compose

我正在学习码头工人

我需要为docker镜像指定工作目录,我想这将是这样的:

version: '2'
services:
  test:
    build:
      context: ./dir
Run Code Online (Sandbox Code Playgroud)

现在我想让图像python:onbuild在上面运行./dir,但我不想在Dockerfile里面创建任何内容./dir.

docker-compose手册没有提到这一点.

可能吗?怎么做?

Rob*_*ann 92

我想你在找working_dir.在docker-compose参考中搜索"working_dir" .

  • 该链接不再指向特定部分,并且一旦我找到特定部分,它就不会清楚地显示 YAML 层次结构中“working_dir”的位置。这篇博客文章很有帮助:https://medium.com/gemma-black/dockers-working-dir-and-entrypoint-are-actually-important-f9028f25a4fd (5认同)

Ian*_*ton 32

您可以按如下方式指定工作目录。

version: '2'
services:
  test:
    build:
      context: ./dir
    working_dir: /dir
Run Code Online (Sandbox Code Playgroud)


For*_*say 14

可能不完全是您正在寻找的内容,但您可以将 docker 构建的“上下文”指定为与实际 Dockerfile 所在的目录不同的目录。

build:
  context: ./folder/containing/files
  dockerfile: path/to/dockerfile/relative/to/context/Dockerfile
Run Code Online (Sandbox Code Playgroud)

Dockerfile 中的任何 ADD/COPY 命令都将表现为与 Dockerfile 相关,而context不管 Dockerfile 实际位于何处。