고유의 Dockerfile을 사용하여 사용자정의 빌드 배치 정보

기본 Dockerfile은 기본 이미지(fnproject/python:3.9-dev)에서 이미지를 빌드했으며 다양한 최신 버전의 종속 패키지가 누락되었을 수 있습니다. 생성된 Docker 이미지를 더 많이 제어하려면 고유의 Dockerfile을 생성할 수 있습니다. 함수를 작성하거나 배포할 때 OCI 함수는 사용자정의 Dockerfile의 지침을 사용하여 Docker 이미지를 빌드합니다.

모든 패키지 업데이트 정보

기본 Dockerfile을 복사하고 다음 명령을 포함하여 패키지를 최신 버전으로 업데이트합니다. 이 명령은 보안 업데이트를 포함하여 모든 패키지를 최신 버전으로 업데이트합니다. func.yaml 파일이 포함된 디렉토리에 Dockerfile을 저장합니다.
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