| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | FROM ubuntu:24.04 |
| |
|
| | LABEL maintainer="MattyMroz" |
| | LABEL description="OneOCR — Windows DLL on Linux via Wine (100% accuracy)" |
| |
|
| | |
| | ENV DEBIAN_FRONTEND=noninteractive |
| | ENV WINEDEBUG=-all |
| |
|
| | |
| | RUN dpkg --add-architecture amd64 && \ |
| | apt-get update && \ |
| | apt-get install -y --no-install-recommends \ |
| | wine64 \ |
| | wine \ |
| | mingw-w64 \ |
| | python3 \ |
| | python3-pip \ |
| | python3-venv \ |
| | python3-dev \ |
| | && \ |
| | apt-get clean && \ |
| | rm -rf /var/lib/apt/lists/* |
| |
|
| | |
| | RUN WINEPREFIX=/root/.wine WINEARCH=win64 wineboot --init 2>/dev/null; \ |
| | sleep 2 |
| |
|
| | |
| | WORKDIR /app |
| | COPY . /app/ |
| |
|
| | |
| | RUN python3 -m venv /app/.venv && \ |
| | /app/.venv/bin/pip install --no-cache-dir \ |
| | pillow \ |
| | numpy \ |
| | onnxruntime |
| |
|
| | |
| | RUN x86_64-w64-mingw32-gcc -O2 \ |
| | -o /app/tools/oneocr_loader.exe \ |
| | /app/tools/oneocr_loader.c \ |
| | || echo "Will compile on first run" |
| |
|
| | |
| | RUN /app/.venv/bin/python -c "\ |
| | from tools.wine_bridge import WINE_LOADER_C; \ |
| | from pathlib import Path; \ |
| | Path('/app/tools/oneocr_loader.c').write_text(WINE_LOADER_C)" && \ |
| | x86_64-w64-mingw32-gcc -O2 \ |
| | -o /app/tools/oneocr_loader.exe \ |
| | /app/tools/oneocr_loader.c \ |
| | 2>/dev/null || true |
| |
|
| | |
| | ENV PATH="/app/.venv/bin:$PATH" |
| | ENV PYTHONPATH="/app" |
| |
|
| | |
| | HEALTHCHECK --interval=30s --timeout=10s --retries=3 \ |
| | CMD python3 -c "from tools.wine_bridge import WineBridge; \ |
| | b = WineBridge(); c = b.check_requirements(); \ |
| | exit(0 if c.get('wine_found') else 1)" |
| |
|
| | |
| | CMD ["python3", "main.py", "--help"] |
| |
|