关于使用您自己的 Dockerfile 部署定制构建

默认 Dockerfile 基于基线映像 (fnproject/python:3.9-dev) 构建映像,并且可能缺少从属软件包的各种最新版本。如果您希望对创建的 Docker 映像进行更多控制,则可以创建您自己的 Dockerfile。构建或部署函数时, OCI 函数使用定制 Dockerfile 中的说明构建 Docker 映像。

关于更新所有软件包

创建默认 Dockerfile 的副本,并包含以下命令以使用最新版本更新软件包。此命令使用最新版本更新所有软件包,包括安全更新。将 Dockerfile 保存到包含 func.yaml 文件的目录。
RUN microdnf update

Dockerfile 的最终版本可能类似于以下内容:

FROM fnproject/python:3.9-dev as build-stage

WORKDIR /function

ADD requirements.txt /function/

                                           RUN pip3 install --target /python/  --no-cache --no-cache-dir -r requirements.txt &&\

                                               rm -fr ~/.cache/pip /tmp* requirements.txt func.yaml Dockerfile .venv &&\

                                               chmod -R o+r /python

ADD . /function/

RUN rm -fr /function/.pip_cache

FROM fnproject/python:3.9

WORKDIR /function

COPY --from=build-stage /python /python

COPY --from=build-stage /function /function

RUN chmod -R o+r /function

ENV PYTHONPATH=/function:/python

RUN microdnf update

ENTRYPOINT ["/python/bin/fdk", "/function/func.py", "handler"]

关于更新特定软件包

您可以通过向 Dockerfile 添加以下命令来更新特定的 CVE 或指导(如果您不想更新所有软件包)。
RUN microdnf install dnf

RUN dnf upgrade --cve CVE-2021-0342

RUN dnf upgrade --advisory ELBA-2024-6977