关于php:如何在dockerfile中复制时创建路径?

How to create a path when copying in a dockerfile?

本问题已经有最佳答案,请猛点这里访问。

我尝试在php/dockerfile中复制一些文件:

1
2
3
4
COPY ./supervisord.conf /etc/supervisor                 #work
COPY ../../config/supervisor/* /etc/supervisor/conf.d   #doesn't work

WORKDIR /home/wwwroot/

正确的路径应该是什么样的?这是我的结构:

1
2
3
4
5
|config -> supervisor -> *
|
|docker -> php -> Dockerfile
|              -> supervisord.conf
|

The path must be inside the context of the build; you cannot
COPY ../something /something, because the first step of a docker build
is to send the context directory (and subdirectories) to the docker
daemon.

http:/ / / / / docs.docker.com引擎/参考生成器

有dockerfile上下文和它自己的目录,无法去以上。这个问题有一个解决方案,例如:

  • docker build .运行命令在目录你想在一个上下文,-f path/to/Dockerfile

  • 如果你使用的是一个码头组成,你可以通不同的上下文信息,例如,如果youre状结构。

1
2
3
4
.
├── docker-compose.yml
└── app
   ├── Dockerfile

然后在码头组成的文件,你可以给它:

1
2
3
4
5
services:
  app:
    build:
      context: .
      dockerfile: app/Dockerfile

本案例中,dockerfile context of the Directory将1以上。但我是一位对我哈克。正确的方法是把dockerfile在你试图复制文件是否存在。