我正在构建 Docker 映像,需要运行 pip install 与带有凭据的私有 PyPi。保护凭证的最佳方法是什么?即使我删除它们,使用各种文件配置选项(pip.conf、requirements.txt、.netrc)仍然是一个漏洞,因为它们可以恢复。环境变量也是可见的。最安全的方法是什么?
我了解您希望在构建时提供这些凭据并在之后删除它们。
那么,处理此问题的最安全方法pip
是使用多阶段构建过程。
首先,您将声明一个build-image
包含文件配置的首字母以及下载/编译所需包所需的任何依赖项;不必担心恢复这些文件的可能性,因为您只会将它们用于构建过程。
然后定义没有构建依赖项的最终映像,并仅复制要从项目运行的源代码以及构建映像中的依赖项。生成的映像不会包含配置文件,并且无法恢复它们,因为它们从未存在过。
FROM python:3.10-slim as build
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
build-essential gcc
WORKDIR /usr/app
RUN python -m -venv /usr/app/venv
ENV PATH="/usr/app/venv/bin:$PATH"
[HERE YOU COPY YOUR CONFIGURATION FILES WITH CREDENTIALS]
COPY requirements.txt
RUN pip install -r requirements
FROM python:3.10-slim
WORKDIR /usr/app
COPY --from=build /usr/app/venv ./venv
[HERE YOU COPY YOUR SOURCE CODE INTO YOUR CURRENT WORKDIR]
ENV PATH="/usr/app/venv/bin:$PATH"
ENTRYPOINT ["python", "whatever.py"]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2424 次 |
最近记录: |