Как получить доступ к корневой папке внутри контейнера Docker - PullRequest
0 голосов
/ 14 ноября 2018

Я новичок в докере и пытаюсь создать образ, который включает в себя выполнение npm install.Некоторые из наших зависимостей происходят из наших частных репозиториев, и я сталкиваюсь с проблемой, связанной с SSH:

enter image description here

Я понял, что не предоставляю никакихформа SSH подробностей в моем файле, и наткнулся на различные посты онлайн о том, как сделать это, используя args в команду docker build.

Итак, взято из здесь , я добавил следующеев мой dockerfile перед запуском команды npm install:

ARG ssh_prv_key
ARG ssh_pub_key

RUN apt-get update && \
    apt-get install -y \
        git \
        openssh-server \
        libmysqlclient-dev

# Authorize SSH Host
RUN mkdir -p /root/.ssh && \
    chmod 0700 /root/.ssh && \
    ssh-keyscan github.com > /root/.ssh/known_hosts

# Add the keys and set permissions
RUN echo "$ssh_prv_key" > /root/.ssh/id_rsa && \
    echo "$ssh_pub_key" > /root/.ssh/id_rsa.pub && \
    chmod 600 /root/.ssh/id_rsa && \
    chmod 600 /root/.ssh/id_rsa.pub

Итак, снова запустив команду сборки docker с указанными правильными аргументами, я вижу дальнейшую активность в консоли, которая предполагает использование моего ключа SSH:

enter image description here

Но, как вы можете видеть, я получаю no hostkey alg сообщений и все еще получаю ту же ошибку «Проверка ключа хоста не удалась».Мне было интересно, смогу ли я просмотреть файл журнала, на который он ссылается, в ошибке:

enter image description here

Нужно ли запускать образ, чтобы иметь возможностьподключиться к ней и просмотреть папку «root»?

Надеюсь, что я понял, пожалуйста, будьте осторожны, я нук докер!

Спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

Строки, начинающиеся с —-> в выводе docker build, являются действительными идентификаторами образа Docker.Вы можете выбрать любой из них и docker run их:

docker run --rm -it 59c45dac474a sh

Если шаг фактически не выполняется, один из полезных приемов отладки - запустить образ, встроенный в шаг перед ним, и выполнить команду вручную.

Помните, что любой , у кого есть ваше изображение, может сделать это;как вы это сделали, если вы когда-нибудь отправите свой образ в какой-либо репозиторий, ваш закрытый ключ ssh будет готов к принятию, и вы, вероятно, должны считать его скомпрометированным.Это вдвойне верно, поскольку оно также будет присутствовать в виде простого текста в выводе docker history.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...