davidjguru / summerhouse
Summer House 是一个用于 Drupal 解耦项目的沙盒。
Requires
- composer/installers: ^1.9
- cweagans/composer-patches: ^1.7
- d3/d3: ^3.5
- drupal/admin_toolbar: ^3.1
- drupal/core-composer-scaffold: ^9.3
- drupal/core-project-message: ^9.3
- drupal/core-recommended: ^9.3
- drupal/devel: ^4.1
- drupal/graphql: ^4.3
- drush/drush: ^11.0
- highlightjs/highlightjs: ^11.2
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.2
- drupal/coder: ^8.3
- edgedesign/phpqa: ^1.26
- phpro/grumphp: ^1.5
- phpstan/phpstan: ^1.8
- sebastian/phpcpd: ^6.0
- slevomat/coding-standard: ^7.0
- squizlabs/php_codesniffer: ^3.7
Conflicts
README
欢迎来到 Summer House
欢迎来到 Summer House,这是一个基于解耦/无头 Drupal 的入门流程的完全 Docker 化环境。
1. 什么是 Summer House
Summer House 是一个用于 Drupal 解耦项目的沙盒,生成 样板代码,用于 培训 目的,并专注于 做中学。该项目是 自包含 的,且对宿主环境 无依赖。此项目即时部署整个解耦 Drupal 平台,附带大量额外资源、工具和配置,但 仅限本地开发。您可以使用 Summer House 进行 入门流程、研讨会和培训课程。或者只是 为了乐趣。
- 有关更详细的信息,请参阅维基部分:summerhouse/wiki。
2. 前提条件
您可以在 Linux 环境中使用 SummerHouse,特别是在 Debian / Ubuntu 中。SummerHouse 需要以下资源: Git、Docker、Docker-Compose 和 DDEV。
如果您在宿主系统中未安装前提条件,您可以从存储库中创建和提交的安装脚本中安装资源。安装脚本在这里:安装脚本。
只需在您的系统中下载该脚本,赋予它权限并执行安装程序。这将安装 Docker、Docker-Compose 和 DDEV 到您的 Linux 系统(Ubuntu、Debian)。此外,它还将安装一些基本资源,如 git、jq、curl 和基本包。
$ chmod +x installing_docker_dockercompose_ddev.sh $ ./installing_docker_dockercompose_ddev.sh
注意:如果您认为将前提条件委托给脚本是不安全的或可能使您的环境处于风险之中,以下是一些信息,以便您自行操作
3. 安装 // 卸载
安装和部署
您只需执行以下三个步骤即可安装 Summer House
$ git clone https://github.com/davidjguru/summerhouse.git #Get a local copy. $ cd summerhouse #Move to the folder. summerhouse$ ddev start #Run the DDEV build up.
然后项目将在您的本地环境中加载、配置、启用并部署。您将在浏览器中看到主 URL 打开。
请记住,Summer House 仅限 本地开发。它可能包含一些在其他环境中可能不安全的配置。
您还可以从 GitHub 仓库的发行版/标签区域 下载项目,选择版本并下载压缩文件夹。然后您只需解压项目并启动 DDEV
$ wget https://github.com/davidjguru/summerhouse/archive/refs/tags/v1.0.0.zip
$ unzip summerhouse-1.0.0.zip
$ cd summerhouse-1.0.0/
summerhouse-1.0.0$ ddev start
然后平台将被挂载并部署。
卸载和清理
为了执行 Summer House 安装的完整清理,您可以执行以下步骤。
$ cd summerhouse summerhouse$ yes| ddev delete -O #Delete the DDEV register for Summer House. summerhouse$ ./scripts/utilities/clean_all_docker_related_resources.sh #Will destroy all docker resources. summerhouse$ cd .. $ sudo rm -rf summerhouse #Delete all the codebase.
4. 地址 // 资源
Summer House 将部署一系列容器,这些容器通过 DDEV 连接到内部网络,并通过您的浏览器从外部访问
- Drupal 后端:http://backend.summerhouse.ddev.site
- React 前端:http://react.summerhouse.ddev.site:3000
- 数据库:ddev-summerhouse-db:3306(内部)
- MkDocs:文档的静态网站生成器,在http://summerhouse.ddev.site:8091
- PHPMyAdmin:数据库的图形界面,在http://summerhouse.ddev.site:8036/
- Portainer:管理容器的图形界面,在http://summerhouse.ddev.site:9001
- Mailhog:邮件测试工具,在http://summerhouse.ddev.site:8025/
5. 故障排除
已识别出一些常见问题。请检查本节以进行快速干预。
有关已知错误及其解决方案的更多信息,请访问相关wiki部分。
某些端口不可用
由于其他应用程序的端口阻止,已检测到问题。这可能导致DDEV启动问题,并在主网站安装过程中导致其他问题,您可能会遇到以下错误
[error] Drupal\Core\Config\ConfigImporterException: There were errors validating the config synchronization.
Entities exist of type <em class="placeholder">Shortcut link</em> and <em class="placeholder">Shortcut set</em> <em class="placeholder">Default</em>. These entities need to be deleted before importing. in Drupal\Core\Config\ConfigImporter->validate() (line 750 of /var/www/html/backend_drupal/core/lib/Drupal/Core/Config/ConfigImporter.php).
DDEV与其他资源(如80或443)使用的端口一起运行。请确保它们没有被占用(您系统上没有运行Apache)。
访问外部资源时出现错误消息
Summer House通过互联网获取大量资源,因此在尝试获取外部资源时有时会出错
A MkDocs service file has been located in your system.
fatal: unable to access 'https://github.com/davidjguru/summerhouse.wiki.git/': Could not resolve host: github.com
Task failed: Exec command '([ -d ./mkdocs/docs ] && cd ./mkdocs/docs && git pull origin) || (git clone https://github.com/davidjguru/summerhouse.wiki.git ./mkdocs/docs)'
(我们正在从存储库wiki的git克隆中构建mkdocs容器)。
这是关键:无法解析主机:github.com。在这种情况下,您需要检查分配的DNS服务器(或您的ISP的DNS服务器),以确保它们正常运行。
macOS中某些命令的错误
当您在macOS中安装Summer House时,有些人报告了某些命令执行时提示中的错误。具体来说,安装过程中使用的某些命令在macOS中不可用,例如
bash: xdg-open: command not found
macOS中的等效命令只是open,因此您可以在`.ddev/config.yaml`中的这些行尝试更改此命令:34 到 38。
并且
Task failed: Exec command 'sed -i '12s/restart: "no"/restart: "on-failure"/' ./.ddev/docker-compose.portainer.yaml' on the host: exit status 1
…当我们使用sed命令更改Portainer容器的重启策略时。
记住,有关如何处理更具体错误的更多信息,请在此处查看
summerhouse/wiki/troubleshooting.
6. 有用链接
- 查看问题队列:summerhouse/issues
- 查看正在进行的工作:summerhouse/project
- 查看相关里程碑:summerhouse/milestones
- 查看文档页面:summerhouse/wiki
7. 其他类似性质的项目
Summer House可能不是您要找的,但它非常接近。如果您想查看其他可能更接近您需求的项目,您可以尝试以下列表中的案例
- 基于Docksal的前端使用GatsbyJS构建的解耦Drupal 8
- 基于Docker4Drupal构建的Metadrop的Drupal脚手架
- 基于Docker4Drupal构建的Systemseed的Drupal ReactJS脚手架
8. 致谢和感谢
- 感谢Digitalist Sweden为我们提供改进入职流程的机会。
- 感谢赫尔娜·诺登菲尔特(Helena Nordenfelt)给予我专注于这个想法的机会。
- 感谢兰迪·费(Randy Fay)在DDEV及其社区中的出色工作。
- 感谢来自Cambrico的佩德罗·坎布拉(Pedro Cambra),他是一位真正的导师。
