Может быть, я смогу использовать https://you:password@github.com/you/example.git
:
Это плохая практика, поскольку любой, кто делает docker image history
на вашем встроенном образе, получит эти учетные данные обратно.
Лучше сделать многоэтапную сборку, как описано в " Доступ к частным репозиториям из вашего Dockerfile, не оставляя позади ваши SSH-ключи ".
Вместо этого он использует SSH-ключимени пользователя / пароля, потому что:
- вы можете сгенерировать и зарегистрировать ключ SSH, выделенный для вашей сборки Docker.
- вы можете отозвать этот ключ в любое время, так как он используется только
for this docker build
(в отличие от пароля для доступа к учетным данным, который вы не можете легко изменить, не влияя, возможно, на другие сценарии, использующие указанный пароль)
Ваш файл Docker будет выглядеть так:
# this is our first build stage, it will not persist in the final image
FROM ubuntu as intermediate
# install git
RUN apt-get update
RUN apt-get install -y git
# add credentials on build
ARG SSH_PRIVATE_KEY
RUN mkdir /root/.ssh/
RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa
# make sure your domain is accepted
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
RUN git clone git@bitbucket.org:your-user/your-repo.git
FROM ubuntu
# copy the repository form the previous image
COPY --from=intermediate /your-repo /srv/your-repo
# ... actually use the repo :)