Как изменить существующий файл конфигурации, такой как .ssh / config, внутри контейнера на ddev

Мне это нужно, чтобы упростить конфигурацию псевдонима drush, чтобы я мог устанавливать серверы, переходы и имена пользователей / ключи в файле конфигурации, а все остальное упростить.


person pcambra    schedule 08.05.2019    source источник


Ответы (1)


Обновление. Начиная с ddev 1.10 эта операция стала еще проще, как описано на https://ddev.readthedocs.io/en/stable/users/extend/in-container-configuration/.

Чтобы изменить /home/.ssh/config, вам просто нужно добавить файл .ssh/config в папку .ddev/homeaditions и обязательно включить следующие строки:

UserKnownHostsFile=/home/.ssh-agent/known_hosts
StrictHostKeyChecking=no

- Следующее действительно только для ddev ‹1.10 -

Это решение, которое я реализовал:

Поскольку я не хотел обрабатывать многострочные добавления, я решил добавить файл конфигурации, который будет добавлен к файлу /home/.ssh/config.

Я добавил настраиваемый файл компоновки докеров в папку .ddev: docker-compose.volumes.yml:

version: '3.6'

services:
  web:
    volumes:
      - "./config:/etc/custom-config"

Затем создал папку config внутри папки .ddev и добавил файл конфигурации с нужным мне содержимым: extra-config.txt

Затем просто добавил пост-пусковой крючок в файл config.yml, как предложил @rfay:

hooks:
  post-start:
    - exec: bash -c 'cat /etc/custom-config/extra-config.txt >> /home/.ssh/config'

Остерегайтесь, потому что команды должны быть обернуты в bash -c, иначе он просто выведет стандартный вывод, а не изменит файл.

person pcambra    schedule 08.05.2019
comment
Спасибо, что поделились этим! Возможно, будет проще поместить extra-config.txt в свой проект и просто скопировать его оттуда, тогда вам не понадобится дополнительный docker-compose.volumes.yaml. - person rfay; 08.05.2019
comment
Верно, но это проект, в котором не все используют ddev, и у каждого разработчика есть свои локальные env :) - person pcambra; 08.05.2019