Model upgrade: - qwen2.5:14b → qwen3.5:latest across config, tools, and docs - Added qwen3.5 to multimodal model registry Self-hosted Gitea CI: - .gitea/workflows/tests.yml: lint + test jobs via act_runner - Unified Dockerfile: pre-baked deps from poetry.lock for fast CI - sitepackages=true in tox for ~2s dep resolution (was ~40s) - OLLAMA_URL set to dead port in CI to prevent real LLM calls Test isolation fixes: - Smoke test fixture mocks create_timmy (was hitting real Ollama) - WebSocket sends initial_state before joining broadcast pool (race fix) - Tests use settings.ollama_model/url instead of hardcoded values - skip_ci marker for Ollama-dependent tests, excluded in CI tox envs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
1.6 KiB
Docker
35 lines
1.6 KiB
Docker
# Timmy Time — unified image (CI · dev · production)
|
|
#
|
|
# All deps pre-installed from poetry.lock; project mounted at runtime.
|
|
#
|
|
# Build: docker build -t timmy-time .
|
|
# CI: act_runner mounts checkout automatically
|
|
# Dev: docker run -v .:/app -p 8000:8000 timmy-time tox -e dev
|
|
# Run: docker run -v .:/app -p 8000:8000 timmy-time
|
|
|
|
FROM python:3.11-slim
|
|
|
|
# ── System + build prereqs ────────────────────────────────────────────────────
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
gcc git bash curl fonts-dejavu-core nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# ── Python tooling ────────────────────────────────────────────────────────────
|
|
RUN pip install --no-cache-dir poetry tox
|
|
|
|
# ── Pre-install all project deps (source mounted at runtime) ──────────────────
|
|
WORKDIR /app
|
|
COPY pyproject.toml poetry.lock ./
|
|
RUN poetry config virtualenvs.create false \
|
|
&& poetry install --with dev --no-root --no-interaction \
|
|
&& rm pyproject.toml poetry.lock
|
|
|
|
# ── Environment ───────────────────────────────────────────────────────────────
|
|
ENV PYTHONPATH=/app/src \
|
|
PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
|
|
EXPOSE 8000
|
|
CMD ["uvicorn", "dashboard.app:app", "--host", "0.0.0.0", "--port", "8000"]
|