Docker+fastapi
Dockfile文件
FROM python:3.11
LABEL authors="Hogen"
WORKDIR /home/MicroServices
COPY . /home/MicroServices
## 设置环境变量 PYTHONPATH,添加 /home 到 PYTHONPATH 中
#ENV PYTHONPATH="/home:${PYTHONPATH}"
# 更新并安装必要的系统依赖,包括 libGL
RUN apt-get update && apt-get install -y
# 先升级 pip
RUN pip install --upgrade pip
# 安装 setuptools 和 wheel
RUN pip install --upgrade setuptools wheel
## 手动安装避免httpx依赖冲突
RUN pip install --no-cache-dir --upgrade -r /home/MicroServices/requirements.txt
# 暴露容器内的端口
EXPOSE 7000
CMD ["uvicorn", "service_user_sql:app", "--host", "0.0.0.0", "--port", "7000"]
FROM 为选择python:3.11的镜像
LABEL authors 是维护人信息
WORKDIR 在docker内建立的工作目录,这里是在/home下建立了个MicroServices文件夹
COPY 拷贝指令,这里的. 表示为当前dockerfile所在目录下的所有文件 拷贝到工作目录/home/MicroServices下
RUN 运行指令,不解释, 需要安装的库在req.txt文件中
EXPOSE 暴露端口,这里指的是容器的端口
CMD 容器run的时候默认运行的指令
命令行下启动:
docker run --name fastapi -p 80:7000 -d fastapi_test:v01
宿主机的80端口绑定到了容器的7000端口上