最初使用 Docker-compose 构建容器时,我忘记在运行 credentials.json
之前将 docker-compose up
文件放入目录中。现在 Docker 似乎总是假设 credentials.json
是一个目录而不是一个文件,即使我在目录中有文件(见下面的错误)。
ERROR: for pair-backend Cannot start service pair-backend:
OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60:
mounting "/host_mnt/Users/leed36/Desktop/GitHub/pair-app/credentials.json" to rootfs at "/var/lib/docker/overlay2/6808dee4b6f47e47f39143231ee71bb1728292fb69e2a672388bc1ba42c42ebd/merged/app/credentials.json"
caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
我已尝试删除容器 docker system prune -a
和 docker volume prune
,但仍然无法让 Docker 挂载此文件。
这里是 docker-compose 定义
container_name: pair-backend
build:
context: ./backend
dockerfile: Dockerfile
env_file:
- ./backend/.env
volumes:
- ./backend:/app/
- ./credentials.json:/app/credentials.json
我可以让它工作的唯一方法是将文件重命名为其他名称并更改 docker-compose.yaml
- ./credentials1.json:/app/credentials.json