【问题标题】:Drupal folders within dockerdocker 中的 Drupal 文件夹
【发布时间】:2017-11-16 03:57:42
【问题描述】:

我用 docker 成功安装了 drupal 7。

使用 docker4drupal,现在我开始编辑我的 drupal 站点时的问题是,包含 drupal 的文件夹在哪里?

假设我安装了一个新主题并想将图像交换为横幅,我如何访问包含图像的 drupal 文件夹,或者更准确地问:Docker 将它们存储在哪里?

我的 docker compose 行是:

-codebase : /var/www/html

我知道安装它使用:

./:/var/www/html

会在我的 docker-compose.yml 所在的同一目录中安装 drupal,但由于某种原因它不起作用并且仍然没有显示文件的位置。

欢迎任何帮助!

【问题讨论】:

    标签: docker drupal drupal-7


    【解决方案1】:

    如果您不使用卷来挂载现有代码,则代码位于 docker 容器中。您只能通过使用 docker exec 进入容器来访问它。如果您使用 repo 附带的默认 docker-compose.yml,则容器的名称将为“docker4drupal_nginx_1”(因为 nginx 是默认值)。

    运行此代码以进入容器:

    docker exec -it docker4drupal_nginx_1 /bin/bash
    

    exec 允许您在容器内执行命令。

    -it 允许您启动交互式终端

    /bin/bash 允许您在容器内启动 bash 终端

    进入容器后,运行 ls,您将看到包括“web”在内的 drupal 文件。

    更有用

    但是,如果您想处理文件并可能使用编辑器,这不是一种有用的方法。相反,在主机上挂载一个目录。首先创建一个名为“codebase”的 docker-compose.yml 文件所在的新目录。

    然后,更新 docker-compose.yml 以便:

    - codebase:/var/www/html
    

    变成

    - ./codebase:/var/www/html
    

    在 php 和 nginx 服务定义中执行此操作。当然,您应该在使用之前的设置运行 docker-compose down 之后执行此操作。然后使用 docker-compose up -d 重启容器。

    然后,您会注意到 Drupal 文件存在于代码库目录中。

    如果您在 yml 文件的底部看到,您会看到“代码库”被定义为 Docker 卷。这意味着存储由 Docker 管理,它将与容器本身一起存储在 /var/lib/docker/ 中的某个位置。

    希望这会有所帮助。

    【讨论】: