Обновление
Вы знаете, я сосредоточился на неправильной части вашего вопроса. Вы не должны использовать имя пользователя и пароль вообще . Вы должны использовать ключи доступа , которые разрешают доступ только для чтения к частным репозиториям.
После того, как вы создали ключ ssh и добавили публичный компонент в свой репозиторий, вы можете добавить личный ключ в свой образ:
RUN mkdir -m 700 -p /root/.ssh
COPY my_access_key /root/.ssh/id_rsa
RUN chmod 700 /root/.ssh/id_rsa
И теперь вы можете использовать этот ключ при установке вашего проекта Python:
RUN pip install git+ssh://git@bitbucket.org/you/yourproject.repo
(следует оригинальный ответ)
Как правило, вы не будете пекать учетные данные в таком изображении. В дополнение к проблеме, которую вы уже обнаружили, это делает ваше изображение менее полезным, потому что вам придется перестраивать его каждый раз, когда меняются ваши учетные данные, или если несколько человек хотели иметь возможность использовать его.
Учетные данные обычно предоставляются во время выполнения с помощью одного из различных механизмов:
Переменные среды: вы можете поместить свои учетные данные в файл, например ::
USERNAME=myname
PASSWORD=secret
А затем включите это в docker run
командную строку:
docker run --env-file myenvfile.env ...
Переменные среды USERNAME
и PASSWORD
будут доступны процессам в вашем контейнере.
Монтирование привязки: вы можете поместить свои учетные данные в файл, а затем выставить этот файл внутри контейнера в качестве монтирования привязки, используя параметр -v
для docker run
:
docker run -v /path/to/myfile:/path/inside/container ...
Это приведет к открытию файла как /path/inside/container
внутри вашего контейнера.
Секреты Docker: Если вы запускаете Docker в режиме роя, вы можете выставить свои учетные данные как Секреты Docker .