mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-23 15:08:13 +02:00
Compose : service remotion-renderer pour le rendu des Reels
Le rendu Remotion tourne dans son propre conteneur Node ; l'application Rust le joint par REMOTION_RENDERER_URL. Ancien script de pré-bundle retiré (le service pré-bundle lui-même à la construction). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013qMexTfVRaegbPAgsagCAJ
This commit is contained in:
3 files changed
+24
-27
No files matched your search
@@ -1,5 +1,6 @@
|
|||||||
# Dépendances
|
# Dépendances
|
||||||
node_modules
|
node_modules
|
||||||
|
**/node_modules
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|
||||||
# Fichiers de build
|
# Fichiers de build
|
||||||
|
|||||||
+23
-2
@@ -55,8 +55,8 @@ services:
|
|||||||
# Rendu des Reels vidéo : remotion (sous-titres animés, identique à
|
# Rendu des Reels vidéo : remotion (sous-titres animés, identique à
|
||||||
# l'aperçu) ou ffmpeg (plus rapide, sous-titres classiques)
|
# l'aperçu) ou ffmpeg (plus rapide, sous-titres classiques)
|
||||||
REEL_RENDERER: ${REEL_RENDERER:-remotion}
|
REEL_RENDERER: ${REEL_RENDERER:-remotion}
|
||||||
# Onglets Chromium en parallèle pour Remotion (défaut : moitié des cœurs)
|
# Service de rendu Remotion (conteneur Node dédié, même clé que FFmpeg)
|
||||||
RENDER_CONCURRENCY: ${RENDER_CONCURRENCY:-}
|
REMOTION_RENDERER_URL: http://remotion-renderer:8100
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
- nginx_default
|
- nginx_default
|
||||||
@@ -70,6 +70,27 @@ services:
|
|||||||
- logos_uploads:/app/uploads/logos
|
- logos_uploads:/app/uploads/logos
|
||||||
- stories_uploads:/app/uploads/stories
|
- stories_uploads:/app/uploads/stories
|
||||||
|
|
||||||
|
# Rendu Remotion des Reels (sous-titres animés, logo, effet de fin)
|
||||||
|
remotion-renderer:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: remotion-service/Dockerfile
|
||||||
|
image: socialflow-remotion-renderer:latest
|
||||||
|
pull_policy: build
|
||||||
|
container_name: socialflow-remotion
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
API_KEY: ${FFMPEG_API_KEY:-socialflow-secret-ffmpeg-key}
|
||||||
|
PORT: 8100
|
||||||
|
# Onglets Chromium par rendu (défaut : moitié des cœurs)
|
||||||
|
RENDER_CONCURRENCY: ${RENDER_CONCURRENCY:-}
|
||||||
|
MAX_PARALLEL_RENDERS: 1
|
||||||
|
shm_size: 1gb
|
||||||
|
networks:
|
||||||
|
- internal
|
||||||
|
expose:
|
||||||
|
- "8100"
|
||||||
|
|
||||||
# Service FFmpeg dédié
|
# Service FFmpeg dédié
|
||||||
ffmpeg-api:
|
ffmpeg-api:
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
// Pré-bundle des compositions Remotion pendant le build Docker : le cache
|
|
||||||
// Webpack est chaud, le premier rendu d'un utilisateur démarre plus vite.
|
|
||||||
// Même configuration que server/services/reels/remotionRenderer.ts.
|
|
||||||
import path from "node:path";
|
|
||||||
import { fileURLToPath } from "node:url";
|
|
||||||
import { bundle } from "@remotion/bundler";
|
|
||||||
|
|
||||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
||||||
|
|
||||||
bundle({
|
|
||||||
entryPoint: path.join(root, "client/src/remotion/index.ts"),
|
|
||||||
webpackOverride: (config) => ({
|
|
||||||
...config,
|
|
||||||
resolve: {
|
|
||||||
...config.resolve,
|
|
||||||
alias: { ...(config.resolve?.alias ?? {}), "@shared": path.join(root, "shared") },
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
.then((location) => console.log("✅ Remotion pre-bundle OK:", location))
|
|
||||||
.catch((error) => {
|
|
||||||
console.warn("⚠️ Remotion pre-bundle skipped:", error.message);
|
|
||||||
process.exit(0);
|
|
||||||
});
|
|
||||||
Reference in new issue
Block a user