我正在构建一个依赖于私有 Pypi 服务器的应用程序。
我的 Dockerfile 看起来像这样:
FROM python:3.6
WORKDIR /src/mylib
COPY . ./
RUN pip install .
Run Code Online (Sandbox Code Playgroud)
我希望 pip 使用额外的服务器来安装依赖项。所以我试图PIP_EXTRA_INDEX_URL在构建阶段传递环境变量,如下所示:
"docker build --pull -t $IMAGE_TAG --build-arg PIP_EXTRA_INDEX_URL=$PIP_EXTRA_INDEX_URL ."
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它没有按预期工作,并且RUN echo $PIP_EXTRA_INDEX_URL什么都不返回。
怎么了?
您应该添加ARG到您的Dockerfile. 您的 Dockerfile 应如下所示:
FROM python:3.6
ARG PIP_EXTRA_INDEX_URL
# YOU CAN ALSO SET A DEFAULT VALUE:
# ARG PIP_EXTRA_INDEX_URL=DEFAULT_VALUE
RUN echo "PIP_EXTRA_INDEX_URL = $PIP_EXTRA_INDEX_URL"
# you could also use braces - ${PIP_EXTRA_INDEX_URL}
WORKDIR /src/mylib
COPY . ./
RUN pip install .
Run Code Online (Sandbox Code Playgroud)
如果你想了解更多,看看这篇文章。