首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker-compose:卷名太短,名称应至少包含两个字母数字字符

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

Stack Overflow用户
提问于 2020-01-25 07:19:25
回答 3查看 19.5K关注 0票数 16

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

代码语言:javascript
运行
复制
volumes:
    - ${DOCUMENT_ROOT}:/var/www/html

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

代码语言:javascript
运行
复制
DOCUMENT_ROOT=.

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

我尝试了这3行代码:

代码语言:javascript
运行
复制
volumes:
    - .:/var/www/html

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

volumes:
    - ${DOCUMENT_ROOT}:/var/www/html

但是我有这个错误:

代码语言:javascript
运行
复制
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

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

代码语言:javascript
运行
复制
version: "3"

services:
webserver:
    build:
        context: ./.docker/bin/webserver
    container_name: '7.4.x-webserver'
    restart: 'always'
    ports:
        - "${HOST_MACHINE_UNSECURE_HOST_PORT}:80"
        - "${HOST_MACHINE_SECURE_HOST_PORT}:443"
    links:
        - mysql
    volumes:
        - ${DOCUMENT_ROOT}:/var/www/html
        - ${PHP_INI}:/usr/local/etc/php/php.ini
        - ${VHOSTS_DIR}:/etc/apache2/sites-enabled
        - ${LOG_DIR}:/var/log/apache2

mysql:
    build:
        context: "./.docker/bin/${DATABASE}"
    container_name: 'mysql'
    restart: 'always'
    ports:
        - "${HOST_MACHINE_MYSQL_PORT}:3306"
    volumes:
        - ${MYSQL_DATA_DIR}:/var/lib/mysql
        - ${MYSQL_LOG_DIR}:/var/log/mysql
    environment:
        MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        MYSQL_DATABASE: ${MYSQL_DATABASE}
        MYSQL_USER: ${MYSQL_USER}
        MYSQL_PASSWORD: ${MYSQL_PASSWORD}

phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: 'sc-phpmyadmin'
    links:
        - mysql
    environment:
        PMA_HOST: mysql
        PMA_PORT: 3306
        PMA_USER: ${MYSQL_USER}
        PMA_PASSWORD: ${MYSQL_PASSWORD}
        MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        MYSQL_USER: ${MYSQL_USER}
        MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    ports:
        - '${HOST_MACHINE_PHPMYADMIN_PORT}:80'
    volumes:
        - ./.docker/sessions

redis:
    container_name: 'sc-redis'
    image: redis:latest
    ports:
        - "${HOST_MACHINE_REDIS_PORT}:6379"

.env:

代码语言:javascript
运行
复制
###>  docker ###
DOCUMENT_ROOT=.

VHOSTS_DIR=./.docker/config/vhosts
APACHE_LOG_DIR=./.docker/logs/apache2
PHP_INI=./.docker/config/php/php.ini

DATABASE=mysql8

MYSQL_DATA_DIR=./.docker/data/mysql
MYSQL_LOG_DIR=./.docker/logs/mysql

HOST_MACHINE_UNSECURE_HOST_PORT=80
HOST_MACHINE_SECURE_HOST_PORT=443
HOST_MACHINE_MYSQL_PORT=3306
HOST_MACHINE_PHPMYADMIN_PORT=8080
HOST_MACHINE_REDIS_PORT=6379

MYSQL_ROOT_PASSWORD=tiger
MYSQL_USER=docker
MYSQL_PASSWORD=docker
MYSQL_DATABASE=docker
###>  docker ###

请告诉我如何修复这个错误?

首先,感谢您的帮助

EN

Stack Overflow用户

发布于 2021-01-21 12:40:00

我在docker-compose.yml文件中尝试了${PWD} --> C:/path(example)。这对我很有效。(Windows 10)

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59904878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档