Как программно создавать симлинки в ddev?

Сайт (без композитора, иначе я бы сделал это там) имеет несколько символических ссылок внутри контейнера, которые необходимы для его работы. Как мне сказать ddev создать эти символические ссылки на ddev start?

Я уверен, что это прямо перед моими глазами, но я не нахожу его. Гугл ничего не дает, может ответ слишком очевиден? Сделать ln -s при первом запуске?


person Urs    schedule 16.02.2020    source источник


Ответы (1)


Во-первых, я бы, вероятно, создал символическую ссылку в своем репозитории и проверил ее в git. Это может вызвать проблемы в Windows (но символические ссылки в целом опасны для Windows).

Вы захотите использовать относительные символические ссылки, чтобы относительный путь можно было использовать либо внутри контейнера, либо на хосте.

Итак, используйте хук post-start с exec (чтобы сделать это внутри веб-контейнера), если вам нужно:

hooks:
  post-start:
  - exec: ln -sf ../vendor/bin/behat behat

Или (особенно если вы не в Windows) вы также можете сделать это на хосте с помощью предстартового или постстартового хука:

hooks:
  pre-start:
  - exec-host: ln -sf ../vendor/bin/behat behat

Имейте в виду, что каталог по умолчанию для exec в веб-контейнере не обязательно является корнем проекта, это может быть docroot (как в случае с Drupal).

person rfay    schedule 16.02.2020
comment
@Urs Я отредактировал, чтобы привести полные примеры того, что я говорил. - person rfay; 22.02.2020
comment
Вы говорите, что символические ссылки проблематичны в Windows. Но ведь они внутри контейнера докеров, не так ли? Хотя у нас ДЕЙСТВИТЕЛЬНО были проблемы с этим сайтом с ddev в Windows, но я бы никогда не подумал, что это из-за символических ссылок? - person Urs; 23.02.2020
comment
PS на самом деле я использовал exec: ln -sfn (с флагом без разыменования), это звучало как подходящий вариант для многократного использования. В веб-контейнере. - person Urs; 23.02.2020
comment
Ах, я думаю, проблемная часть относится только к хуку в хосте, верно? - person Urs; 23.02.2020
comment
Подробнее о символических ссылках и окнах см. ddev.readthedocs.io/en/stable/users/developer-tools/ — и это важно для большинства людей, потому что они хотят, чтобы их репозиторий выглядел одинаково с обеих сторон (хост и контейнер). Вам может быть все равно... - person rfay; 26.02.2020