我想创建一个Apache容器,并将当前工作目录作为卷挂载到容器中,因此我有以下代码:
volumes:
- ${DOCUMENT_ROOT}:/var/www/html
${DOCUMENT_ROOT}的值是.env
文件中的一个点:
DOCUMENT_ROOT=.
我的docker-compose.yml
文件位于项目目录的根目录下,项目目录中有一个.docker
目录。
我尝试了这3行代码:
volumes:
- .:/var/www/html
volumes:
- ./:/var/www/html
volumes:
- ${DOCUMENT_ROOT}:/var/www/html
但是我有这个错误:
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
文件的内容:
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:
###> 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 ###
请告诉我如何修复这个错误?
首先,感谢您的帮助
发布于 2021-01-21 12:40:00
我在docker-compose.yml
文件中尝试了${PWD} --> C:/path(example)
。这对我很有效。(Windows 10)
https://stackoverflow.com/questions/59904878
复制相似问题