Используйте drush-patchfile в среде DDEV - PullRequest
0 голосов
/ 16 января 2019

В Drupal 7 я использую

Drush-заплатка

для автоматической установки исправлений при установке / обновлении модуля через drush. Но в DDEV я не знаю, как расширить существующий drush с помощью drush-patchfile

Как вы можете видеть в 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 или чего-то еще? Я прочитал документацию , но не уверен, в каком направлении идти.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

На основании комментария @rfay, здесь решение, которое работает для меня (и с небольшими изменениями, может работать для других проектов).

  1. Я клонировал репо вне контейнера докера; например, я клонировал в

    $ PROJECT_ROOT / грузчик / Drush-заплатки

  2. Создать пользовательский 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';
  1. Добавьте следующие хуки в $ 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 envronment

ddev start

и теперь вы можете использовать drush-patchfile команды в контейнере веб-докера.

0 голосов
/ 16 января 2019

Вы можете ddev ssh, а затем sudo chown -R $(id -u) ~/.drush/, а затем делать все, что вы хотите в этом каталоге (~ / .drush - это /home/.drush).

Когда вы приступаете к работе и хотите повторять ее при каждом запуске, вы можете закодировать необходимые инструкции с помощью перезапусков: https://ddev.readthedocs.io/en/latest/users/extending-commands/

Пожалуйста, следуйте точному рецепту, который вы используете, так как он может помочь другим. Спасибо!

...