![](/img/trans.png)
[英]Install a python package using pip from private GitHub repo when building Docker image?
[英]Install github organization private package using docker build
我是 X 組織的一員。在這里,我們有一個 python 包,它被添加到 requirements.txt 中。 我有權訪問此存儲庫。
當我執行 pip install https://github.com/X/repo.git時,它工作正常。 因為它使用的是我在主機或本地機器上的 git 身份。
但是,當我按如下方式使用 docker 進行 pip 安裝時
FROM python:3.8
COPY ./app ./app
COPY ./requirements.txt ./requirements.txt
# Install git
RUN apt-get update && apt-get install -y git openssh-client
RUN mkdir -p -m 0600 ~/.ssh
RUN ssh-keyscan github.com >> ~/.ssh/known_hosts
RUN --mount=type=ssh pip install git+ssh://git@github.com/X/repo_name.git@setup#egg=repo_name
# Install Dependencies
RUN pip install -r ./requirements.txt
# Configure server
ENV HOST="0.0.0.0"
ENV PORT=5000
# CMD
ENTRYPOINT uvicorn app:app --host ${HOST} --port ${PORT}
# Remove SSH Key
RUN rm ~/.ssh/id_rsa
我也使用以下方法在 github 中設置了 ssh 密鑰
但是,當我執行ssh -T username@github.com
時,它會拋出Permission denied
。 但是,我擁有組織下的存儲庫的所有者權限。
不確定,如何解決這個問題!
當我執行
ssh -T username@github.com
時,它拋出 Permission denied
如果您使用的是username@github.com
而不是git@github.com
,它總是會拋出“ Permission denied
”,因為“用戶名”部分是根據您注冊到 GitHub 配置文件的公鑰推斷出來的。 但是SSH查詢的遠程用戶必須是GitHub的服務賬號git
。
其次,如果您在映像中導入私鑰,請確保使用多階段構建,如Vladislav Supalov的“ 從您的 Dockerfile 訪問私有存儲庫而無需留下您的 SSH 密鑰”中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.