ddev - 在 DDEV 环境中使用 drush-patchfile
问题描述
在 Drupal 7 中,我使用
快速补丁文件
通过 drush 安装/更新模块时自动实施补丁。但在 DDEV 中,我不知道如何使用 drush-patchfile 扩展现有的 drush
正如您在https://bitbucket.org/davereid/drush-patchfile部分安装中看到的那样,我需要将存储库克隆到
~/.drush
目录,并将其附加到现有的 drush。
在另一个没有 DDEV 的项目中,我已经通过创建新的 docker 映像文件完成了该操作
FROM wodby/drupal-php:7.1
USER root
RUN mkdir -p /home/www-data/.drush && chown -R www-data:www-data /home/www-data/;
RUN cd /home/www-data/.drush && git clone https://bitbucket.org/davereid/drush-patchfile.git \
&& echo "<?php \$options['patch-file'] = '/home/www-data/patches/patches.make';" \
> /home/www-data/.drush/drushrc.php;
USER wodby
但我不确定如何在 DDEV 容器中执行此操作。
我是否需要基于 drud/ddev-webserver 或其他东西创建新服务?我已经阅读了文档,但不确定该往哪个方向发展。
解决方案
基于@rfay 评论,这里的解决方案适用于我(只需稍加修改即可适用于其他项目)。
- 我已经在 docker 容器之外克隆了repo ;例如,我已经克隆到
$PROJECT_ROOT/docker/drush-patchfile
drushrc.php
在文件夹中创建自定义$PROJECT_ROOT/.esenca/patches
(您可以选择不同的文件夹)
<?php
# Location to the patch.make file. This should be location within docker container
$options['patch-file'] = '/var/www/html/.esenca/patches/patches.make';
- 将以下钩子添加到 $PROJECT_ROOT/.ddev/config.yaml
hooks:
post-start:
# Copy drush-patchfile directory into /home/.drush
- exec: "ln -s -t /home/.drush/ /var/www/html/docker/drush-patchfile"
# Copy custom drushrc file.
- exec: "ln -s -t /home/.drush/ /var/www/html/.esenca/patches/drushrc.php"
最终项目结构应如下所示
.
├── .ddev
│ ├── config.yaml
│ ├── docker-compose.yaml
│ ├── .gitignore
│ └── import-db
├── docker
│ ├── drush-patchfile
│ │ ├── composer.json
│ │ ├── patchfile.drush.inc
│ │ ├── README.md
│ │ └── src
├── .esenca
│ └── patches
│ ├── drushrc.php
│ └── patches.make
├── public_html
│ ├── authorize.php
│ ├── CHANGELOG.txt
│ ├── COPYRIGHT.txt
│ ├── cron.php
│ ├── includes
│ ├── index.html
│ ├── index.php
│ ├── INSTALL.mysql.txt
│ ├── INSTALL.pgsql.txt
│ ├── install.php
│ ├── INSTALL.sqlite.txt
│ ├── INSTALL.txt
│ ├── LICENSE.txt
│ ├── MAINTAINERS.txt
│ ├── misc
│ ├── modules
│ ├── profiles
│ ├── README.txt
│ ├── robots.txt
│ ├── scripts
│ ├── sites
│ │ ├── all
│ │ ├── default
│ │ ├── example.sites.php
│ │ └── README.txt
│ ├── themes
│ ├── Under-Construction.gif
│ ├── update.php
│ ├── UPGRADE.txt
│ ├── web.config
│ └── xmlrpc.php
└── README.md
最后启动 ddev 环境
ddev start
现在您可以drush-patchfile
在 web docker 容器中使用命令。
推荐阅读
- javascript - 使用javascript隐藏元素时使CSS Hover工作
- c++ - 将 QbyteArray 保留到 Qstring
- arduino - 我的 Arduino 代码没有上传到这个错误信息,我不知道为什么
- angular - Docker/Angular/Nginx: "exec: \"npm\": $PATH 中找不到可执行文件":
- python - pyqtgraph:如何为绘图轴着色?
- android - 无法将 java.lang.String 类型的对象转换为类型
- nlp - 确定新闻文章是关于哪家公司的
- java - 单击按钮后无法启动另一个活动(android)
- machine-learning - LSTM 和标签
- excel - excel插件api:如何知道范围或单元格是否合并?