Sobre a Implantação de Builds Personalizados Usando o Seu Próprio Dockerfile
O Dockerfile padrão criou a imagem a partir da imagem de linha de base (fnproject/python:3.9-dev) e pode estar faltando várias versões mais recentes de pacotes dependentes. Se você quiser mais controle sobre a imagem do Docker criada, poderá criar seu próprio Dockerfile. Quando você cria ou implanta a função, o OCI Functions usa as instruções no Dockerfile personalizado para criar a imagem do Docker.
Sobre a atualização de todos os pacotes
Faça uma cópia do Dockerfile padrão e inclua o comando a seguir para atualizar pacotes com as versões mais recentes. Este comando atualiza todos os pacotes com as versões mais recentes, incluindo atualizações de segurança. Salve o Dockerfile no diretório que contém o arquivo
func.yaml
.
RUN microdnf update
Sua versão final do Dockerfile pode se assemelhar ao seguinte:
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"]