我有一个本地 docker 环境和 ansible 脚本来启动/停止环境以及使用它进行开发的所有开发人员。现在我需要将私有存储库添加为其中一个项目的依赖项,因此我需要一种方法将开发人员私有 ssh 密钥传递给 docker 实例,并由作曲家使用它来安装该项目(否则它会提示用户/密码,这在 ansible 中不是很好(。为了复制 ssh kee,我做了这样的任务:
- name: Copy SSH private key to container
shell: docker cp {{pathToSshPrivateKey}} container:/home/www-data/.ssh/id_rsa
但是我怎么能告诉作曲家使用该键呢?我只发现要强制使用密钥而不是用户/密码,我需要用-n
运行作曲家,但是如何提供该密钥的路径?
我使用类似以下内容的内容来允许我从 docker 容器中以 SSH 访问权限执行作曲家命令:
docker run --rm
--user $(id -u):$(id -g)
-v $HOME/.ssh:/var/www/.ssh:ro
-v $HOME/.composer:/.composer
-v $(pwd):/var/www
custom-image-name:tag composer install -n