關於使用您自己的 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