【问题标题】:Installing private pip package inside docker container在 docker 容器中安装私有 pip 包
【发布时间】:2022-11-14 17:44:04
【问题描述】:

我正在尝试为 fastapi 应用程序创建 docker 容器。 此应用程序将使用托管在 github 上的私有 pip 包。

在本地开发过程中,我使用以下命令安装依赖项:

pip install git+https://<ACCESS_TOKEN>:x-oauth-basic@github.com/username/projectname

我在 dockerfile 中尝试了相同的方法,但是没有成功

FROM python:3.9

WORKDIR /code

COPY ./requirements.txt /code/requirements.txt

ARG ACCESS_TOKEN=default_value

RUN /usr/local/bin/python -m pip install --upgrade pip
RUN echo "pip install git+https://${ACCESS_TOKEN}:x-oauth-basic@github.com/username/projectname"
RUN pip install --no-cache-dir --upgrade -r requirements.txt

COPY . /code

CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8080"]
docker build --build-arg ACCESS_TOKEN=access_token_value .

容器构建没有错误,并且在构建过程中我可以看到令牌已正确传递。 但是,使用docker run &lt;containerid&gt; 运行容器后,出现以下错误:

ModuleNotFoundError: No module named 'projectname'

有没有人尝试过这样的事情? 这是正确的方法吗?

【问题讨论】:

  • 嗨 :) 你为什么不试试RUN eval "pip ...." 而不是echo?我看不到在中间使用echo 的有用案例。
  • 如此愚蠢的错误......谢谢@Mert!这解决了问题

标签: python docker github pip


【解决方案1】:

如果我没记错的话,你可以在没有echo 的情况下运行你的 pip 命令:

RUN pip install git+https://${ACCESS_TOKEN}:x-oauth-basic@github.com/username/projectname

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 2020-05-15
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2016-12-09
    • 2021-04-15
    相关资源
    最近更新 更多