相关疑难解决方法(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万
查看次数

如何在Windows上安装Docker套接字?

我正在尝试使仅在Unices上开发的Windows上的应用程序可以工作。所有这些都经过docker化,并使用traefik负载均衡器。用于运行traefik的docker的卷如下所示:

volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro,delegated
- ${PWD}/load_balancer/traefik.toml:/etc/traefik/traefik.toml:ro,delegated
Run Code Online (Sandbox Code Playgroud)

第一个卷在Mac或Linux上可以正常运行,但在Windows上可以吗?应用程序发生故障(负载均衡器给出了404),并且可能与该卷有关。当我启动映像时,套接字看起来像一个套接字:

/ # ls -laF /var/run/docker.sock
srw-rw----    1 root     root             0 Sep  2 11:04 /var/run/docker.sock=
Run Code Online (Sandbox Code Playgroud)

这管用吗?有什么测试方法吗?正确的做法是什么?

为了弄清楚这一点,我尝试将其替换为:

volumes:
- //./pipe/docker_engine:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

基于我在网上找到的各种文章和错误报告。泊坞窗映像启动,但以相同的方式失败,现在在泊坞窗容器中,它看起来像一个目录:

/ # ls -laF /var/run/docker.sock
total 4
drwxr-xr-x    2 root     root            40 Sep  3 14:52 ./
drwxr-xr-x    1 root     root          4096 Sep  3 14:57 ../
Run Code Online (Sandbox Code Playgroud)

按照Marc ABOUCHACRA的回答,我尝试了:

volumes:
- type: npipe
  source: ////./pipe/docker_engine
  target: /var/run/docker.sock
  consistency: delegated
Run Code Online (Sandbox Code Playgroud)

但这也看起来像一个目录:

/ # ls -laF /var/run/docker.sock
total 4
drwxr-xr-x    2 root     root            40 Sep …
Run Code Online (Sandbox Code Playgroud)

docker docker-for-windows traefik

5
推荐指数
3
解决办法
502
查看次数