如何在 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 而不会修改文件。
我需要这个来简化我的 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 而不会修改文件。