feat(docker): image-based prod stack (Dockerfiles + prod compose + push script)
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>
This commit is contained in:
1 parent
93ee958434
commit
149443e4f7
8 files changed
+205
-19
No files matched your search
@@ -0,0 +1,15 @@
|
||||
# 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"]
|
||||
Reference in new issue
Block a user