相关疑难解决方法(0)

Docker compose将找不到$ PWD环境变量

这是我的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/

shell environment-variables docker

18
推荐指数
3
解决办法
3万
查看次数

相对路径不与docker-compose.yml中的命名卷一起使用

我需要使命名卷使用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:如果我使用绝对路径,它就像一个魅力

docker docker-compose

6
推荐指数
1
解决办法
1965
查看次数