使用docker打包python项目并在本地模拟部署aws lambda
文章目录
前言
本文主要记录使用docker打包python项目并部署到lambda的流程以及遇到的一些问题。
配置:Windows11,WSL2,Ubuntu20.04,VScode
一、docker打包python项目
1.准备工作
在requirements.txt中写入需要安装的库:
-f https://download.pytorch.org/whl/torch_stable.html
open3d==0.13.0
torch==1.12.0+cpu
# open3d-python
设置dockerfile:
FROM public.ecr.aws/lambda/python:3.7
ADD ./ ${
LAMBDA_TASK_ROOT}/
RUN mkdir -p /tmp/classifier
RUN python3 -m pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
RUN python3 -m pip install open3d-python -i https://pypi.mirrors.ustc.edu.cn/simple/
CMD [ "handler.predict"]
1、从 aws lambda 上 pull 下 python 3.7 的基础镜像
2、当前目录的内容ADD到容器中的 /var/task 目录下
3、在容器的tmp文件夹中新建文件夹(代码运行时需要在临时文件夹中生成临时文件)
4、安装依赖库
5、启动运行 handler.predict
由于open3d-python在requirements.txt一起安装出现了报错,所以将open3d-python放入dockerfile单独安装。
2.打包步骤
打开WSL:Ubuntu-20.04终端,启动docker:
sudo service docker start
切换路径到待打包的文件夹:
cd 文件夹路径
创建docker镜像
docker build -t test:0.1.0 .
注意:最后有个 .
运行创建好的镜像,创建一个新容器
docker run -p 8888:8080 test:0.1.0
docker run -p 8888:8080