42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
# 安装依赖阶段
|
|
FROM python:3.11-slim as build
|
|
|
|
RUN mkdir /install
|
|
|
|
WORKDIR /install
|
|
|
|
# RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list.d/debian.sources
|
|
# RUN apt-get update \
|
|
# && apt-get install gcc -y \
|
|
# && apt-get clean
|
|
# COPY requirements.txt .
|
|
# RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --prefix=/install
|
|
|
|
COPY poetry.lock .
|
|
COPY pyproject.toml .
|
|
RUN pip install poetry -i https://mirrors.aliyun.com/pypi/simple/ \
|
|
&& poetry source add --priority=primary mirrors https://pypi.tuna.tsinghua.edu.cn/simple/ \
|
|
&& poetry config virtualenvs.path /install \
|
|
&& poetry install
|
|
|
|
# 应用启动
|
|
FROM python:3.11-slim
|
|
|
|
# COPY --from=build /install /usr/local/
|
|
COPY --from=build /install/*/lib/python3.11/ /usr/local/lib/python3.11/
|
|
COPY --from=build /install/*/bin/ /usr/local/bin/
|
|
|
|
# 删除不需要的文件和工具,精简镜像
|
|
RUN apt-get purge -y --auto-remove \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& rm -rf /usr/share/doc \
|
|
&& rm -rf /usr/share/man \
|
|
&& rm -rf /usr/local/bin/pip
|
|
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
# COPY . /app
|
|
|
|
ENV FAST_API_ENV=prod
|
|
|
|
CMD ["/usr/local/bin/uvicorn", "main:fast_api_app", "--reload", "--host", "0.0.0.0", "--port", "80"] |