【问题标题】:docker-compose doesn't work in specific directorydocker-compose 在特定目录中不起作用
【发布时间】:2020-03-22 21:55:28
【问题描述】:

我已经运行了一段时间没有问题的开发设置。我正在使用 Docker for Windows 和 Windows Subsystem for Linux 2。它运行良好。今天尝试启动 docker-compose 时,失败并出现以下错误:

frederik@desktop:~/projects/caselab$ docker-compose -f docker-test.yml up
Recreating f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_caselab_db_1 ...
Recreating f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_caselab_db_1 ... error

ERROR: for f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_f26a365c8a83_caselab_db_1  Cannot create container for service db: mkdir 07ff2055c618dedc240ca3275de3f8c41d091136dc659cf463ee9fc62eed1853: permission denied

ERROR: for db  Cannot create container for service db: mkdir 07ff2055c618dedc240ca3275de3f8c41d091136dc659cf463ee9fc62eed1853: permission denied
ERROR: Encountered errors while bringing up the project.
frederik@desktop:~/projects/caselab$

我将docker-test.yml的内容精简为:

version: '3'

services:
  db:
    image: postgres
    logging:
      driver: none

我尝试运行docker run postgres,它没有问题。然后我尝试将我文件夹的所有内容复制到另一个文件夹。现在,运行 docker-compose -f docker-test.yml 没有问题。

我认为这与权限有关,但我看不出原始文件夹和新文件夹之间的权限没有区别。

由于我在 Visual Studio Code 中进行大部分编辑,在 Windows 中运行,我认为它可能与 Windows / Linux 边界有关,尽管我不完全确定如何。而且 - 再一次 - 这个设置已经运行了几个月没有问题,所以我不知道我可以改变什么。

有什么想法吗?

【问题讨论】:

  • 如果您不使用git,请确保使用,您可以使用verbose 像这样docker-compose -v up 运行它吗
  • 我正在使用 git。我的仓库中没有任何东西从能够运行一切变为无法运行。此外,如果将相同的代码复制到另一个文件夹,同样的代码也可以工作。

标签: docker docker-compose windows-subsystem-for-linux


【解决方案1】:

我设法解决了。

我注意到,每次运行命令时,运行 docker-compose up 都会在图像名称前添加一个哈希。这导致了一个可笑的长图像名称。

运行 docker-compose images 显示此图像存在。

只需运行 docker-compose rm 即可删除图像,从而可以创建和运行正确的图像。

我已将此作为 docker-compose 中的错误提交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2021-05-29
    • 2020-06-10
    • 2020-10-10
    相关资源
    最近更新 更多