Benutzerdefinierte Builds mit eigener Dockerfile bereitstellen

In der Standard-Dockerfile wurde das Image aus dem Baseline-Image erstellt (fnproject/python:3.9-dev) und möglicherweise fehlen verschiedene neueste Versionen abhängiger Packages. Wenn Sie mehr Kontrolle über das erstellte Docker-Image haben möchten, können Sie Ihre eigene Dockerfile erstellen. Wenn Sie die Funktion erstellen oder bereitstellen, verwendet OCI Functions die Anweisungen in der benutzerdefinierten Dockerfile, um das Docker-Image zu erstellen.

Info über das Aktualisieren aller Pakete

Erstellen Sie eine Kopie der Standard-Dockerfile, und fügen Sie den folgenden Befehl ein, um Packages mit den neuesten Versionen zu aktualisieren. Mit diesem Befehl werden alle Packages mit den neuesten Versionen aktualisiert, einschließlich Sicherheitsupdates. Speichern Sie die Dockerfile in dem Verzeichnis mit der Datei func.yaml.
RUN microdnf update

Die endgültige Version von Dockerfile kann wie folgt aussehen:

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"]

Informationen zum Aktualisieren bestimmter Pakete

Sie können bestimmte CVE oder Advisorys aktualisieren, indem Sie der Dockerfile die folgenden Befehle hinzufügen (wenn Sie nicht alle Packages aktualisieren möchten).
RUN microdnf install dnf

RUN dnf upgrade --cve CVE-2021-0342

RUN dnf upgrade --advisory ELBA-2024-6977