Docker-compose:卷名太短,名称应至少为两个字母数字字符

ElG*_*_76 11 docker docker-compose

我想创建一个 Apache 容器并将当前工作目录挂载为容器中的一个卷,所以我有这个代码:

volumes:
    - ${DOCUMENT_ROOT}:/var/www/html
Run Code Online (Sandbox Code Playgroud)

${DOCUMENT_ROOT} 的值是文件中的一个点.env

DOCUMENT_ROOT=.
Run Code Online (Sandbox Code Playgroud)

我的docker-compose.yml文件位于我的项目目录的根目录,在我的项目目录中有一个.docker目录。

我试过这 3 行:

volumes:
    - .:/var/www/html

volumes:
    - ./:/var/www/html

volumes:
    - ${DOCUMENT_ROOT}:/var/www/html
Run Code Online (Sandbox Code Playgroud)

但我有这个错误:

Creating 7.4.x-webserver ... error ERROR: for 7.4.x-webserver  Cannot
create container for service webserver: b'create .: volume name is too
short, names should be at least two alphanumeric characters'

ERROR: for webserver  Cannot create container for service webserver:
b'create .: volume name is too short, names should be at least two
alphanumeric characters' ERROR: Encountered errors while bringing up
the project. Failed to deploy 'Compose: docker-compose.yml':
`docker-compose` process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

我的docker-compose.yml文件的内容:

volumes:
    - ${DOCUMENT_ROOT}:/var/www/html
Run Code Online (Sandbox Code Playgroud)

.env:

DOCUMENT_ROOT=.
Run Code Online (Sandbox Code Playgroud)

请问这个错误怎么解决?

在此先感谢您的帮助

小智 18

尝试这样的事情 - ${PWD}/:/var/www/html

  • 事实证明,“/”在这里至关重要:“--volume $(pwd)/:/app”有效,但“--volume $(pwd):/app”无效 (4认同)

小智 11

我为此挣扎了很多。我所做的唯一更改 - 添加了一个正斜杠。工作了。

原样

  volumes:
      - ${PWD}:/apps
Run Code Online (Sandbox Code Playgroud)

成为

  volumes:
      - ${PWD}/:/apps
Run Code Online (Sandbox Code Playgroud)