关于使用您自己的 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"]