# 使用官方 Python 镜像 FROM python:3.10-slim WORKDIR /app RUN apt-get update && \ apt-get install -y --no-install-recommends \ libpq5 \ unixodbc \ curl \ fonts-wqy-zenhei \ libgl1 \ gnupg \ apt-transport-https \ lsb-release && \ # 导入微软 GPG key(使用 keyrings 方式) curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /usr/share/keyrings/microsoft.gpg && \ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/ubuntu/22.04/prod jammy main" > /etc/apt/sources.list.d/mssql-release.list && \ apt-get update && \ ACCEPT_EULA=Y apt-get install -y msodbcsql18 && \ rm -rf /var/lib/apt/lists/* COPY app/requirements.txt . # 安装 Python 依赖 RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt RUN python -m pip uninstall -y opencv-python RUN python -m pip install opencv-python-headless # 复制并解压 JRE COPY docker/OpenJDK17U-jre_x64_linux_hotspot_17.0.16_8.tar.gz /opt/ RUN tar -xzf /opt/OpenJDK17U-jre_x64_linux_hotspot_17.0.16_8.tar.gz -C /opt/ && \ rm /opt/OpenJDK17U-jre_x64_linux_hotspot_17.0.16_8.tar.gz # 配置 Java 环境 ENV JAVA_HOME=/opt/jdk-17.0.16+8-jre ENV PATH="$JAVA_HOME/bin:$PATH" # 复制项目代码 COPY app/ . # 复制 pyzxing 的 jar 文件到默认路径 COPY docker/javase-3.4.1-SNAPSHOT-jar-with-dependencies.jar /root/.local/pyzxing/javase-3.4.1-SNAPSHOT-jar-with-dependencies.jar EXPOSE 13011 # 启动命令(使用 uvicorn 启动 FastAPI) CMD ["python", "app.py"]