Я создаю образ докера и хочу клонировать репозиторий из bitbucket.

Если я создаю контейнер `debian 'и выполняю шаг за шагом, все работает нормально. Но когда я пытаюсь создать изображение, оно не работает.

Я добавил ключ в настройки bitbucket.

Вот мой Dockerfile

FROM debian:stretch

RUN apt-get update && apt-get -y upgrade && apt-get -y install nginx curl software-properties-common gnupg git
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs

RUN mkdir /backend

RUN npm install pm2 ts-node -g

WORKDIR /backend
RUN mkdir /root/.ssh
RUN echo -e "-----BEGIN RSA PRIVATE KEY-----\n(...)-----END RSA PRIVATE KEY-----" >> /root/.ssh/id_rsa
RUN chmod 400 /root/.ssh/id_rsa
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
RUN git clone git@bitbucket.org:xxx/xxx.git

Вот ошибка:

Cloning into 'xxx'...
Warning: Permanently added the RSA host key for IP address '104.192.143.3' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Как я могу создать это изображение для правильной работы?

1 ответ1

1

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

Ожидаемые разрешения

.ssh должно быть:

drwx------  2 user user 4096 Feb  6 11:18 .ssh

Закрытый ключ:

-rw-------  1 user user 1675 Feb  6 11:18 id_rsa

Наконец, ваш домашний каталог должен, по крайней мере, быть недоступным для записи группой или другим пользователем, обычно вы хотите:

drwx------ 84 user user 16384 Feb 16 18:23 user

Собираем все вместе:

chmod go-w /root
chmod 700 /root/.ssh
chmod 600 /root/.ssh/id_rsa

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .