在dockerfile中复制时如何创建路径?
How to create a path when copying in a dockerfile?
我正在尝试在 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
|
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.
https://docs.docker.com/engine/reference/builder/
docker文件有自己目录的context,不能往上走。
这个问题有一些解决方法,例如:
运行 docker build .
命令在你想成为上下文的目录上,用-f path/to/Dockerfile
另一个 - 如果您正在使用 docker-compose,您可以将其传递给不同的上下文,例如,如果您的结构如下:
.
├── docker-compose.yml
└── app
├── Dockerfile
然后在你的 docker-compose 文件中你可以给它:
services:
app:
build:
context: .
dockerfile: app/Dockerfile
在这种情况下,docker文件的上下文将是上面的 1 个目录。但这对我来说似乎有点老套。正确的方法是将 docker 文件放在您要复制的文件所在的位置。
我正在尝试在 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
|
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.
https://docs.docker.com/engine/reference/builder/
docker文件有自己目录的context,不能往上走。 这个问题有一些解决方法,例如:
运行
docker build .
命令在你想成为上下文的目录上,用-f path/to/Dockerfile
另一个 - 如果您正在使用 docker-compose,您可以将其传递给不同的上下文,例如,如果您的结构如下:
. ├── docker-compose.yml └── app ├── Dockerfile
然后在你的 docker-compose 文件中你可以给它:
services:
app:
build:
context: .
dockerfile: app/Dockerfile
在这种情况下,docker文件的上下文将是上面的 1 个目录。但这对我来说似乎有点老套。正确的方法是将 docker 文件放在您要复制的文件所在的位置。