在Dockerfile中无法引用父目录中的文件的问题
发生在自然界中的一切可观察到的事件、事物或行为。
├── nginx
| └── Dockerfile
├── statics
├── Dockerfile
└── docker-compose.yaml
尝试从Dockerfile引用位于父目录的文件时无法成功。
FROM nginx
ADD ../statics /var/www/
CMD ["nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]
$ docker-compose up --build
Building nginx
Step 1/4 : FROM nginx
---> be1f31be9a87
Step 2/4 : ADD statics /var/www/
ERROR: Service 'nginx' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder740600385/statics: no such file or directory
我会在添加时失败。
解决问题
通过将docker-compose.yaml中的上下文包含在父目录中,现在可以引用文件了。
version: '3'
services:
nginx:
# build: ./nginx
build:
context: .
dockerfile: ./nginx/Dockerfile
container_name: proxy
ports:
- 80:80
api:
build: .
FROM nginx
# ADD ../statics /var/www/
ADD statics /var/www/
CMD ["nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]