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