独自のDockerfileを使用したカスタム・ビルドのデプロイについて
デフォルトのDockerfileは、ベースライン・イメージ(fnproject/python:3.9-dev)からイメージを構築し、様々な最新バージョンの依存パッケージが欠落している可能性があります。作成したDockerイメージをより詳細に制御する場合は、独自のDockerfileを作成できます。ファンクションをビルドまたはデプロイすると、OCI Functionsはカスタム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"]