在dockerfile中复制时如何创建路径?

时间:2019-04-14 11:40:35

标签: php docker dockerfile supervisord supervisor

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

COPY ./supervisord.conf /etc/supervisor                 #work
COPY ../../config/supervisor/* /etc/supervisor/conf.d   #doesn't work

WORKDIR /home/wwwroot/

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

|config -> supervisor -> *
|
|docker -> php -> Dockerfile
|              -> supervisord.conf
|

1 个答案:

答案 0 :(得分:0)

  

路径必须在构建上下文内;你不能   COPY ../something / something,因为Docker构建的第一步   是将上下文目录(和子目录)发送到docker   守护程序。

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/design-elt-data-loading

dockerfile具有其自己目录的上下文,并且无法上移。 此问题有一些解决方法,例如:

  • 使用docker build .

  • 在要用作上下文的目录上运行-f path/to/Dockerfile命令
  • 另一个-如果您使用的是docker-compose,则可以将其传递给其他上下文,例如,如果您的结构类似:

.
├── docker-compose.yml
└── app
   ├── Dockerfile

然后在您的docker-compose文件中提供它:

services:
  app:
    build:
      context: .
      dockerfile: app/Dockerfile

在这种情况下,dockerfile的上下文将在上面的1个目录中。但这对我来说似乎有点拙劣。正确的方法是将dockerfile放置在您要复制的文件所在的位置。