如何在Docker中使用可访问的代码库设置Drupal网站?

时间:2019-09-25 15:23:28

标签: docker docker-compose

我正在尝试使用Docker Compose与Docker建立一个新的本地Drupal 7网站。我希望可以通过文件浏览器访问 sites / all sites / default / files 文件夹,例如,我可以在编辑器中编辑其中的文件并轻松创建自定义模块。

文档结构

test-website
  --db-backups
  --sites
  --docker-compose.yml

docker-compose.yml文件

version: '3.1'
services:
  drupal:
    image: drupal:7
    ports:
      - 8080:80
    volumes:
      - ./sites:/var/www/html/sites
    restart: always

  db:
    image: mysql:5.7
    volumes:
      - ./db-backups:/var/mysql/backups
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - 3030:3030

  pma:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: db
      PMA_USER: user
      PMA_PASSWORD: password
      PHP_UPLOAD_MAX_FILESIZE: 1G
      PHP_MAX_INPUT_VARS: 1G
    ports:
     - 9090:9090

volumes:
  sites:
  db-backups:

在命令行中编写 docker-compose.yml 文件使我可以根据需要导航到localhost:8080,但是在安装的需求验证步骤中出现错误:

  

目录站点/默认目录/文件不存在。自动创建此目录的尝试失败,可能是由于权限问题。要继续安装,请创建目录并手动修改其权限,或者确保安装程序具有自动创建目录的权限。有关更多信息,请参见INSTALL.txt或在线手册。

我的书似乎有问题,但是我不知道该怎么办,也无法在线找到清晰的文档。另外,我现在试图将 sites 整体放在一个卷中,但是当Docker容器被杀死并重新启动时,这会导致数据丢失(请参阅https://github.com/docker-library/drupal/issues/3)。因此,我需要一个可以持久保存数据的解决方案。

我应该遵循哪些步骤来正确设置Drupal 7网站?

1 个答案:

答案 0 :(得分:0)

使用文件夹卷时,您无需定义 docker卷

只需删除最后3行

volumes:
  sites:
  db-backups: