如何在 ddev 上修改容器内的现有配置文件,例如 .ssh/config

How to modify an existing configuration file such as .ssh/config inside the container on ddev

我需要这个来简化我的 drush 别名配置,这样我就可以在配置文件中建立服务器、跳转箱和 usernames/keys 并使其他一切变得更简单。

更新: 从 ddev 1.10 开始,此操作更加简单,如 https://ddev.readthedocs.io/en/stable/users/extend/in-container-configuration/

中所述

要更改 /home/.ssh/config,您只需在 .ddev/homeaditions 文件夹中添加一个 .ssh/config 文件,并确保包含以下行:

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

-- 以下只对ddev < 1.10有效--

这是我实施的解决方案:

因为我不想处理多行添加,所以我决定添加一个将附加到 /home/.ssh/config 文件的配置文件。

我在 .ddev 文件夹中添加了自定义 docker 撰写文件:docker-compose.volumes.yml:

version: '3.6'

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

然后在 .ddev 文件夹中创建了 config 文件夹,并添加了一个包含我想要的内容的配置文件:extra-config.txt

然后,按照@rfay 的建议在config.yml 文件中添加一个post-start 挂钩:

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

注意,因为命令需要包装在 bash -c 上,否则它只会输出 stdout 而不会修改文件。