在Drupal 7中,我使用
drush-patchfile
在通过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或其他东西创建一个新服务? 我已经读过documentation,但不确定要往哪个方向走。
答案 0 :(得分:1)
基于@rfay的评论,这里的解决方案对我有效(几乎不需要修改就可以用于其他项目)。
$ 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';
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
现在您可以在Web docker容器中使用drush-patchfile
命令。
答案 1 :(得分:0)
您可以先ddev ssh
,然后再sudo chown -R $(id -u) ~/.drush/
,然后在该目录中执行任意操作(〜/ .drush为/home/.drush)。
当您开始使用它并且想要在每次启动时重复进行操作时,可以使用启动后挂钩对所需的指令进行编码:https://ddev.readthedocs.io/en/latest/users/extending-commands/
请按照您使用的确切食谱进行操作,因为它可能会对他人有所帮助。谢谢!