現象
├── nginx
| └── Dockerfile
├── statics
├── Dockerfile
└── docker-compose.yaml
Dockerfileから親ディレクトリにあるファイルを参照しようとしてもできませんでした。
nginx/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
ADDで失敗してしまいます。
解決
docker-compose.yamlでcontextを親ディレクトリを含むようにすることで、ファイルを参照できるようになりました。
docker-compose.yaml
version: '3'
services:
nginx:
# build: ./nginx
build:
context: .
dockerfile: ./nginx/Dockerfile
container_name: proxy
ports:
- 80:80
api:
build: .
nginx/Dockerfile
FROM nginx
# ADD ../statics /var/www/
ADD statics /var/www/
CMD ["nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]