这是我的docker-compose:
version: '2'
services:
couchpotato:
build:
context: ./couchpotato
dockerfile: Dockerfile
ports:
- 5050:5050
volumes:
- "${PWD}/couchpotato/data:/home/CouchPotato/data/"
- "${PWD}/couchpotato/config:/home/CouchPotato/config/"
Run Code Online (Sandbox Code Playgroud)
当我在shell中运行它时,在docker-compose.yml的目录中,我得到:
WARNING: The PWD variable is not set. Defaulting to a blank string.
Run Code Online (Sandbox Code Playgroud)
并且撰写以PWD为空开始.
我没有在文件中看到任何错误,如下所示:https://docs.docker.com/compose/environment-variables/
我需要使命名卷使用docker-compose执行命令的文件夹的相对路径.
这是docker-compose.yml中的卷定义
volumes:
esdata1:
driver: local
driver_opts:
type: none
device: ./esdata1
o: bind
Run Code Online (Sandbox Code Playgroud)
似乎docker-compose不创建文件夹,如果它不存在,但即使在lauching docker之前创建文件夹我也总是收到此错误:
ERROR: for esdata Cannot create container for service esdata: error while mounting volume with options: type='none' device='./esdata1' o='bind': no such file or directory
Run Code Online (Sandbox Code Playgroud)
注意:这可能很愚蠢,但是esdata使用指定卷的服务
esdata:
...
volumes:
- esdata1:/usr/share/elasticsearch/data
...
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?
也许相对路径./没有指向执行的文件夹docker-compose(我试过~/使用相对于用户家的文件夹,但我得到了同样的错误).
提前致谢,
PS:如果我使用绝对路径,它就像一个魅力