镜像准备
构建Dockerfile
fission的基础环境包括两种:env 以及 builder。如果仅基于code构建function(i.e., 只创建deployachive),仅构建env即可;但如果需要构建sourcearchive,则需要同时创建env和builder。其中,builder基于fission-python-builder,env基于fission-python-env。
env
bash
FROM fission/python-env-3.9 #注意这里
RUN apk --no-cache add \
zlib-dev \
libjpeg-turbo-dev \
build-base
RUN pip install --upgrade pip #必须要添加,否则会出错
RUN pip install Pillow
EXPOSE 8001
builder
bash
FROM fission/python-builder-3.9 #注意这里
RUN apk --no-cache add \
zlib-dev \
libjpeg-turbo-dev \
build-base
RUN pip install --upgrade pip
RUN pip install Pillow
EXPOSE 8001
build镜像
- 切换到root用户
- 执行以下命令完成build
bash
podman build -t $image_name:$image_tag -f $dockerfile_path
上传镜像
- 登录docker hub (保证在root用户下)
bash
podman login
- 查看image ID
bash
podman image list
- 上传镜像
bash
podman push $imageid $docker_hub_name/image_name:image_tag
镜像使用
创建使用上述镜像的env
bash
fission env create --name pillow --image $name/pillow-env:v1 --builder $name/pillow-builder:v1
创建函数
bash
zip -jr ./thumb_src.zip ./* #打包function的源文件
fission package create --name thumb-pkg --sourcearchive thumb_src.zip --env pillow
fission fn create --name thumb --pkg thumb-pkg --entrypoint "thumbnail.main" --env pillow --executortype newdeploy #指定函数入口
测试函数
bash
fission fn test --name thumb