Adds a pull-based production option so the host no longer builds/installs deps
on every restart:
- backend/Dockerfile + scrobble/Dockerfile bake the heavy deps (ffmpeg, Deno,
yt-dlp, node libs). Backend still refreshes yt-dlp on start (non-fatal).
- docker-compose.prod.yml pulls ${REGISTRY}/novasonic-*:${TAG}.
- scripts/build-push-images.mjs (npm run push-images) builds + pushes all three.
- .env.example documents every var incl. REGISTRY/TAG; .env gitignored.
The build-on-host docker-compose.yml stays as-is.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
16 lines
401 B
Docker
16 lines
401 B
Docker
# NovaSonic scrobble service — isolated timestamped play-log. Uses Node's built-in SQLite
|
|
# (--experimental-sqlite), so the only dependency is express. Build context = ./scrobble.
|
|
FROM node:22-slim
|
|
|
|
WORKDIR /deps
|
|
RUN npm install express
|
|
ENV NODE_PATH=/deps/node_modules
|
|
|
|
WORKDIR /app
|
|
COPY . /app/
|
|
|
|
ENV PORT=3710 DATA_PATH=/data
|
|
EXPOSE 3710
|
|
|
|
CMD ["node","--experimental-sqlite","scrobble-server.js"]
|