【问题标题】:Cannot mount Config directory in Nextcloud Docker container无法在 Nextcloud Docker 容器中挂载 Config 目录
【发布时间】:2020-07-24 08:35:40
【问题描述】:

我正在尝试在本地创建自定义 Nextcloud 配置,然后能够使用此处定义的卷将其挂载到适当的文件夹:https://github.com/nextcloud/docker#persistent-data。对于 config 挂载,所有卷挂载除了都有效...为什么这里的处理方式不同?

重现步骤

0) 输入一个新的/空目录(不包含子目录或附加文件)。

1) 创建一个仅包含以下内容的 docker-compose.yml 文件:

version: "3.4"

services:
  nextcloud:
    image: nextcloud:latest
    volumes:
      - "./nextcloud/custom_apps:/var/www/html/custom_apps"
      - "./nextcloud/config:/var/www/html/config"
      - "/data/nextcloud:/var/www/html/data"
      - "./themes:/var/www/html/themes"

2) docker-compose up -d

预期行为

工作。我应该可以在本地./nextcloud/config 看到/var/www/html/config 的内容,然后插入一个客户config.php,然后在容器中更新。

实际行为

启动容器时出现错误,特定于 config 目录。如果我删除上面的./nextcloud/config:/var/www/html/config 卷挂载,那么容器将启动而不会出错。

错误信息

错误:对于 nextcloud 无法启动服务 nextcloud:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致“process_linux.go:449:容器初始化导致\“rootfs_linux.go:58:安装\\”/家庭/用户/ nextcloud测试/ nextcloud /配置\\ “来根文件系统\\ ”的/ var / lib中/泊坞窗/ overlay2 / 41b567141e23b16cf5e4f99f4c33703fc9a533aa5a4bef68fbba70a74842ca88 /合并\\“ 在\\” 的/ var / lib中/泊坞窗/ overlay2 / 41b567141e23b16cf5e4f99f4c33703fc9a533aa5a4bef68fbba70a74842ca88 /合并/var/www/html/config\\" 导致 \\"not a directory\\"\"":未知:您是否尝试将目录挂载到文件上(反之亦然)?检查指定的主机路径是否存在并且是预期的类型 错误:启动项目时遇到错误。

服务器配置

操作系统:

操作系统:Debian GNU/Linux 10 (buster) 内核:Linux 4.19.0-8-cloud-amd64 架构:x86-64

图片

下一个云:最新(阿帕奇)

【问题讨论】:

    标签: docker docker-compose docker-volume nextcloud persistent-volumes


    【解决方案1】:

    我无法使用您的步骤重现 (Ubuntu 18.04)。

    从这里开始,运行docker-compose up -d 然后docker-compose logs,我看不到任何错误。然后,在容器上运行docker inspect 时,我看到以下内容:

    ...
    "Volumes": {
        "/var/www/html": {},
        "/var/www/html/config": {},
        "/var/www/html/custom_apps": {},
        "/var/www/html/data": {},
        "/var/www/html/themes": {}
    },
    ...
    

    这表明安装没有问题。

    我建议你做什么:

    1. 检查目录./nextcloud/config是否存在且不是文件
    2. 检查您的 Docker 和 Docker Compose 安装是否是最新的
    3. 尝试使用 docker run -it -v ./nextcloud/config:/var/www/html/config <containername> /bin/bash 运行 Docker 容器,以探索挂载是否手动工作
    4. 尝试对最小示例(例如 Getting started 示例)执行相同操作

    【讨论】:

    • 这个错误似乎是由缓存图像引起的?在没有进行任何其他更改的情况下,我运行了sudo docker-compose down && sudo docker rmi -f $(sudo docker images -a -q) && sudo docker-compose up -d,这对我来说效果很好。谢谢!
    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2017-12-27
    • 2016-11-10
    • 2022-10-20
    • 1970-01-01
    • 2016-06-10
    • 2021-06-02
    • 1970-01-01
    相关资源
    最近更新 更多