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