【发布时间】:2020-01-11 18:10:29
【问题描述】:
我一直在尝试 docker-compose up -d 到我的容器,但导致以下错误:
错误:对于 phpsample-feed_phpsample_1 无法启动服务 phpsample:OCI 运行时创建失败: container_linux.go:346:启动容器进程导致“process_linux.go:449:容器初始化导致 \"rootfs_linux.go:58: 挂载 \\"/c/Users/testUser/Documents/phpsample-feed/src\\" 到 rootfs \\"/mnt/sda1/var/lib/docker/overlay2/e6bf66b01f587c8826c2944b676044c6a199a0c8c2b8807adf13de0e0f8c4509/ 合并 \\" 在 \\"/mnt/sda1/var/lib/docker/overlay2/e6bf66b01f587c8826c2944b676044c6a199a0c8c2b8807adf13de0e0f8c4509/ 合并/var/www/html\\"导致\\"不是目录\\"\"":未知:您是否尝试挂载目录 到文件上(反之亦然)?检查指定的主机路径是否存在并且是预期的类型
这是我的docker-compose.yml 文件:
version: '3.7'
services:
phpsample:
build:
context: .
init: true
ports:
- '8080:80'
depends_on:
- db
- redis
volumes:
- ./src:/var/www/html:rw
environment:
- DB_HOST=db
- DB_USR=user
- DB_PW=test
- DB_DBNAME=phpsample
- DB_DBPREFIX=dev_
- IS_SHORT_URL=1
- CACHE_DRIVER=redis
- CACHE_HOST=redis
- CACHE_PORT=6379
- CACHE_REDIS_DB=3
- DEBUG=false
restart: always
db:
image: mysql:8
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_USER=user
- MYSQL_PASSWORD=test
- MYSQL_DATABASE=phpsample
volumes:
- db_data:/var/lib/msyql
command: --default-authentication-plugin=mysql_native_password --sql_mode=NO_ENGINE_SUBSTITUTION
redis:
image: redis:5-buster
init: true
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis_data:/data
volumes:
db_data:
redis_data:
我使用的系统和工具:
- Windows 10 家庭版
- Docker 工具箱终端
- 风筝
- 甲骨文虚拟机
我还尝试通过 this 在 VM 上编辑我的 Shared Folders。使用以下设置:
名称:c/Users 路径:C:\Users
【问题讨论】:
-
src 是否存在于您运行 docker-compose 的目录中,它是一个目录吗?
-
如果您将
./src:/var/www/html:rw更改为php_data:/var/www/html:rw,并将php_data也添加到volumes:列表中怎么办? -
@wobr 已经存在并且是一个src文件
-
@J.ScottElblein 您的建议使它运行,但无法通过 localhost:8080 访问,当我
docker ps时它不断重启。
标签: docker docker-compose dockerfile