【发布时间】: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 <containerid> 运行容器后,出现以下错误:
ModuleNotFoundError: No module named 'projectname'
有没有人尝试过这样的事情? 这是正确的方法吗?
【问题讨论】:
-
嗨 :) 你为什么不试试
RUN eval "pip ...."而不是echo?我看不到在中间使用echo的有用案例。 -
如此愚蠢的错误......谢谢@Mert!这解决了问题