| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| 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"] |
|
|