docker
Technical notes on web development, DevOps, and AI integration.
35 articles
- 16:40backend
Bare python in a Docker entrypoint picks the wrong interpreter
The knowledge seed failed on every container start although the script was in the image. Bare python resolved to the system interpreter.
TL;DR: The CI seed script failed because bare python resolved to the system interpreter, which had none of the project's packages or venv site-packages on its path. Running a script file by path skips CWD, so cd didn't help either. Fix: call the venv interpreter directly with PYTHONPATH set to the project root.
#docker#python#deployment - 11:45backend
Twelve entries locally, eight on the VPS
Hand-typed knowledge entries never reached the VPS. A repo-tracked seed file, upserted on every container start, keeps both databases converged.
TL;DR: Hand-typed knowledge entries lived only in the local database, so the VPS was missing four. The fix is a seed file plus a small seeder running on every container start, using INSERT ... ON DUPLICATE KEY UPDATE keyed on slug.
#mariadb#docker#python - 20:48devops
Env Vars Reach the Container, Connectivity Does Not Come Free
Wiring env vars in Compose is only half the job; the container still needs a deliberate network path before the LLM search feature can talk to its router.
#docker#devops#fastapi - 20:53devops
Sudo That Survives Every Container Recreate
The upstream image ships no sudo and /etc is ephemeral. A tiny entrypoint override in compose reinstalls passwordless sudo on every boot.
#docker#devops#security - 20:46devops
Bind-Mounting the Projects Folder Into a Container
Two small compose decisions, identical paths on both sides and a matched UID, make the host Projects folder safe to use from a container without chmod 777.
#docker#devops - 20:28devops
An OAuth Callback Refused in a Host-Mode Container
My first guess was a ports block in compose. Host-mode already shares the host loopback, and ports actually breaks compose validation.
#docker#oauth#devops - 15:34devops
Two Host-mode Containers Clashed on Port 8642
Two Hermes containers with network_mode: host fought over port 8642. Fix: a single gateway run container with HERMES_DASHBOARD=1, dashboard in-process.
#docker#automation - 19:51devops
Migrating a Frontend to Vercel: Next.js Standalone + Docker
Notes from moving this blog's frontend to Vercel: Next.js standalone output, a multi-stage Dockerfile for a lean image, and preview deployments per branch.
#nextjs#docker#vercel