当前位置: 首页 > 知识库问答 >
问题:

Docker容器尝试装载文件目录

呼延运恒
2023-03-14

我正在docker中构建craft cms,当我执行docker compose up时,出现以下错误:

错误:对于craftcms无法开启服务craftcms: OCI运行时创建失败:container_linux.go:344:启动容器进程导致"process_linux.go:424:容器初始化导致\"rootfs_linux.go:58:安装\\"/host_mnt/c/src/composer.lock\\"到rootfs\\"/var/lib/docker/overlay2/b7084475699f911f17d38746b21b1b9694fedf6e096a4080109d429fa687a6db/合并\\"at\\"/var/lib/docker/overlay2/b7084475699f911f17d38746b21b9694fedf6e096a4080109d429fa687a6db/合并/var/www/composer.lock\\"导致\\"不是目录\\"\":未知:您是否尝试将目录挂载到文件上(反之亦然)?检查指定的主机路径是否存在并且是预期的类型ERRO

显然,在Windows操作系统中装载目录与Linux操作系统不同。你能帮我解决这个问题吗?

更新

从docker-compose.yml,这是我挂载文件的地方:

craftcms:
    build:
      context: .
      dockerfile: ./infrastructure/docker/php-fpm/Dockerfile
    expose:
      - 9000
    volumes:
      - cpresources:/var/www/web/cpresources
      - ./src/vendor:/var/www/vendor
      - ./src/composer.json:/var/www/composer.json
      - ./src/composer.lock:/var/www/composer.lock
      - ./src/config:/var/www/config
      - ./src/modules:/var/www/modules
      - ./src/templates:/var/www/templates
      - ./src/web:/var/www/web

共有1个答案

太叔永新
2023-03-14

这通常表示src/composer.lock不是文件,或者存在这些文件的驱动器没有正确共享给docker VM。

对于前者,请检查运行docker compose的目录,这是经过审查的目录,因此我无法提供比这更好的详细信息。您应该有一个src\composer。将其锁定为常规文件,而不是目录。

对于后者,请进入docker首选项,重新配置驱动器共享,以确保包含包含包含compose项目的驱动器,并且docker具有您的当前密码(它执行windows SMB装载以将驱动器共享到docker VM)。

当docker尝试装载一个不作为主机装载存在的文件时,默认操作是在主机上创建一个目录(如果目录未正确共享,则此目录可能仅在docker VM中),并将该目录装载到容器中。如果这应该是一个文件而不是容器中的目录,那么您将得到一个错误。

 类似资料:
  • 我有两张docker的照片。其中一个docker映像(来自第一个容器)在运行时会生成一些文件,这些文件需要由另一个容器使用。 我可以这样做吗?

  • 我正在使用mysql/mysql-server映像在docker中创建一个mysql服务器。因为我想自动设置我的数据库(添加用户、创建表),所以我创建了一个SQL文件来完成这个任务。为了自动运行该脚本,我使用这个dockerfile扩展了映像: 但出于某种原因,这种情况会发生: 如何修复此问题?

  • 我创建了一个Docker容器,但现在需要将作为安装在容器内部。 如果我手动更改Docker文件夹中的文件,并取消挂载行的注释,Docker似乎挂起。 此外,文件会不时重新创建。 我需要知道在哪里可以更改创建lxc配置的Docker配置文件。

  • 我只想用 docker-compose.yml 启动一个 oracle docker 容器。 到目前为止,这有效,直到我添加了一个文件夹来同步/装载/容器中的任何内容。 问题1:如果主机上的文件夹丢失 - docker没有挂载任何问题 2:一个空文件夹被git忽略 - 所以我添加了一个空文件 所以如果我现在开始我的docker-compose,docker将带有我的假文件的文件夹挂载到oracle

  • 我正在尝试将文件上传到 Azure Blob 存储,但在将文件推送到存储中时收到错误。 我使用java 11和Quarkus进行开发。在POM上,我添加了工件azure-storage-blob和azure-sdk-bom 法典: 恢复错误 io.net.cha.DefaultChannelPipeline] (vert.x-eventloop-thread-2) 一个 exceptionCaug