Я пытающегося запустить bower install
внутри Docker контейнера, переданного в качестве команды в docker-compose.yml
Использование беседку внутри Docker контейнера с зависимостью частного репо
Соответствующий код в docker-compose.yml
:
services:
assets:
build: ./src
command: >
sh -c '
bower install --allow-root;
'
bower.json
имеет следующую зависимость:
{
"name": "projectname",
"version": "version",
"dependencies": {
"remote-repo": "ssh://[email protected]/repo.git#branch"
}
}
Это дистанционное репо является закрытым. Хост-машина имеет правильные учетные данные SSH, чтобы вытащить с этого пульта.
Я попытался передачи учетных данных SSH из моего хозяина машины в контейнер Docker 4 или 5 различных способов, но все попытки Сетки меня то же самое сообщение об ошибке:
docker_1 | bower repo#branch ECMDERR Failed to execute "git
ls-remote --tags --heads ssh://[email protected]/repo.git", exit code
of #128 Host key verification failed. fatal: Could not read from
remote repository. Please make sure you have the correct access
rights and the repository exists.
Когда я exec
непосредственно в контейнер, и попытка git clone, он спрашивает меня, могу ли я добавить пульт к known_hosts, а затем он запрашивает мою кодовую фразу для моего ssh-ключа (как ожидается при первой попытке подключения к удаленному компьютеру).
я последовал за шагами в этой реакции StackOverflow, чтобы попытаться обойти подсказку: https://stackoverflow.com/a/23411161/4736263
И даже зашел так далеко, чтобы бросить все на него через SSH, что я мог, добавив эти шаги к моему Dockerfile под RUN команды: https://serverfault.com/questions/132970/can-i-automatically-add-a-new-host-to-known-hosts/316100#316100
Как она стоит сейчас, мой скрипт установки (который работает docker-compose up
, между прочим), включает в себя строку:
cp $HOME/.ssh/id_rsa src/id_rsa
И я подтвердил, что id_rsa копируются правильно в каталог, где Dockerfile является (в частности, src
в моем приложении)
И мой Dockerfile содержит это:
# Make ssh dir
RUN mkdir /root/.ssh/
# Copy over private key, and set permissions
ADD id_rsa /root/.ssh/id_rsa
# Create known_hosts
RUN touch /root/.ssh/known_hosts
# Add remote's key
RUN ssh-keygen -R remoterepo.url
RUN ssh-keygen -R remoterepoIP
RUN ssh-keygen -R remoterepo.url,remoterepoIP
RUN ssh-keyscan -H remoterepo.url,remoterepoIP >> /root/.ssh/known_hosts
RUN ssh-keyscan -H remoterepoIP >> /root/.ssh/known_hosts
RUN ssh-keyscan -H remoterepo.url >> /root/.ssh/known_hosts
Есть ли способ, чтобы получить беседку внутри Docker контейнера для получения доступа к частное дистанционное репо? Я чувствую, что я пробовал все (и я делал разные вещи всю неделю).