使用 Python 3.8.13 alpine 作为基础镜像
FROM python:3.8.13-alpine
设置工作目录
WORKDIR /app
环境变量
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone
更新并安装必要的依赖库
RUN apk update && apk add --no-cache
libffi-dev
build-base
cmake
ffmpeg-dev
pkgconfig
libjpeg-turbo-dev
libpng-dev
libwebp-dev
tiff-dev
openblas-dev
python3-dev
linux-headers
musl-dev
gfortran
lapack-dev
bash
git
安装 opencv 依赖项及其相关库,并清理临时文件
RUN apk add --no-cache --virtual .build-deps
&& apk add --no-cache
libjpeg-turbo
freetype
libpng
libwebp
openjpeg
ffmpeg-libs
&& pip install --upgrade pip
&& pip install numpy
&& pip install opencv-python-headless
&& apk del .build-deps
&& rm -rf /var/cache/apk/* /root/.cache/pip
COPY requirements.txt ./
RUN pip install -r requirements.txt && rm -rf requirements.txt
EXPOSE 8000
CMD [“uvicorn”, “main:app”, “–host”, “0.0.0.0”, “–port”, “8000”]