Files
autoclip/Dockerfile.dev
5f8a24d9d6 v1.2.1 hotfix: make the Docker / local-script paths complete a full run (#88 ×7, #53) (#89)
* fix(docker): make the documented docker-compose path actually run

- .dockerignore: allow docker-entrypoint.sh / docker-dev-entrypoint.sh, which
  Dockerfile COPYs; excluding them made every 'docker build' fail (#1 #4 #9
  #47 #50 #88)
- add .gitattributes forcing LF on shell scripts so Windows clones can start
  the container (#73 #88)
- base image python:3.9-slim -> python:3.11-slim; current yt-dlp no longer
  supports 3.9 and only yields 360p via the android fallback (#88)
- celery worker in docker-compose / dev compose / start_autoclip.sh now
  consumes the queues task_routes actually targets
  (-Q celery,processing,video,notification,upload); without it tasks piled up
  in 'processing' and were never executed (#88)
- the four compose services share one image tag so it is built once
- docs: Python 3.10+ requirement, Linux bind-mount permission note

Co-authored-by: Kris K <zhouxiaoka@users.noreply.github.com>

* fix(backend): remove machine-specific paths and the Redis probe that failed every Docker project

- task_submission_utils: the queue-depth log after a successful send_task used
  redis.Redis(host='localhost') inside the try block, so under docker-compose
  (Redis at redis:6379) every project was marked failed right after being
  queued. Probe now uses REDIS_URL and only warns on failure (#88)
- youtube.py: yt-dlp was invoked via a hardcoded /Users/zhoukk venv path with
  a hardcoded cwd, so /parse returned 500 on every other machine. Use
  sys.executable -m yt_dlp with the data directory as cwd (#88)
- youtube.py: requesting five subtitle languages at once triggers HTTP 429 and
  aborts the download; default to zh-Hans,zh,en, overridable with
  AUTOCLIP_YT_SUBTITLE_LANGS (#88)
- llm_providers._build_full_input: JSON-serialise list/tuple input instead of
  str() so the scoring step no longer breaks on list payloads (#53)
- fix_project_thumbnails.py / SettingsPage.tsx: drop remaining hardcoded
  developer paths (the settings page was writing them into users'
  settings.json)
- delete backend/api/v1/youtube_improved.py (unreferenced)
- add regression tests for the submission path and input serialisation

Co-authored-by: Kris K <zhouxiaoka@users.noreply.github.com>

* ci: add docker-compose smoke job

Builds the image, starts redis + api + worker, and asserts: API health,
yt-dlp importable on the image's Python, Redis reachable through REDIS_URL
from the app container, and the worker consuming every routed queue
(celery, processing, video, notification, upload). Guards the failure modes
from #88 that nothing in CI previously exercised.

Co-authored-by: Kris K <zhouxiaoka@users.noreply.github.com>

* chore: bump desktop version to 1.2.1 and stop hardcoding app_version in the backend

Cargo.toml was still 1.1.0 while tauri.conf.json said 1.2.0. Align both (and
Cargo.lock) at 1.2.1. The Rust launcher now passes CARGO_PKG_VERSION to the
backend as AUTOCLIP_APP_VERSION so /settings reports the real version instead
of a fixed "1.0.0".

Co-authored-by: Kris K <zhouxiaoka@users.noreply.github.com>

* docs: 1.2.1 changelog; refresh HANDOFF with current status, PR/issue triage and plan

CHANGELOG 1.2.0 had absorbed old unreleased web-side items wholesale; keep
them but label them as historical. Fix the compare/release links that still
pointed at your-username.

Co-authored-by: Kris K <zhouxiaoka@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Kris K <zhouxiaoka@users.noreply.github.com>
2026-09-06 21:58:05 +08:00

55 lines
1.1 KiB
Docker

# AutoClip 开发环境 Dockerfile
FROM python:3.11-slim
# 设置环境变量
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONPATH=/app
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y \
build-essential \
curl \
ffmpeg \
git \
&& rm -rf /var/lib/apt/lists/*
# 安装Node.js
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -y nodejs
# 复制Python依赖文件
COPY requirements.txt ./
# 创建虚拟环境并安装Python依赖
RUN python3 -m venv venv
RUN . venv/bin/activate && pip install --upgrade pip
RUN . venv/bin/activate && pip install -r requirements.txt
# 复制前端依赖文件
COPY frontend/package*.json ./frontend/
# 安装前端依赖
RUN cd frontend && npm install && npm run build
# 复制项目文件
COPY . .
# 复制开发环境启动脚本
COPY docker-dev-entrypoint.sh ./
# 创建必要的目录
RUN mkdir -p data/projects data/uploads data/temp data/output logs
# 设置权限
RUN chmod +x *.sh
RUN chmod +x docker-dev-entrypoint.sh
# 暴露端口
EXPOSE 8000 3000
# 启动命令
CMD ["./docker-dev-entrypoint.sh"]