node
Expose deux fonctions de haut niveau :- BuildStatic : compile le projet et sert les fichiers via nginx (SPA, sites statiques)
- BuildServer : compile le projet et lance un serveur Node.js (SSR, Next.js standalone...)
Le package manager par défaut est pnpm.
Installation
dagger install gitlab.com/build-core/daggerverse/node@15d2fb0fd717527628660e5c52418016798f56dcEntrypoint
Return Type
Node !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| nodeVersion | String ! | "22" | Version de Node.js à utiliser. Défaut : 22 |
Example
dagger -m gitlab.com/build-core/daggerverse/node@15d2fb0fd717527628660e5c52418016798f56dc call \
--node-version stringfunc (m *MyModule) Example(nodeVersion string) *dagger.Node {
return dag.
Node(nodeVersion)
}@function
def example(node_version: str) -> dagger.Node:
return (
dag.node(node_version)
)@func()
example(nodeVersion: string): Node {
return dag
.node(nodeVersion)
}Types
Node 🔗
nodeVersion() 🔗
Version de Node.js à utiliser. Défaut : 22
Return Type
String ! Example
dagger -m gitlab.com/build-core/daggerverse/node@15d2fb0fd717527628660e5c52418016798f56dc call \
--node-version string node-versionfunc (m *MyModule) Example(ctx context.Context, nodeVersion string) string {
return dag.
Node(nodeVersion).
NodeVersion(ctx)
}@function
async def example(node_version: str) -> str:
return await (
dag.node(node_version)
.node_version()
)@func()
async example(nodeVersion: string): Promise<string> {
return dag
.node(nodeVersion)
.nodeVersion()
}buildServer() 🔗
BuildServer compile le projet et retourne un conteneur Node.js exécutant le serveur. Convient pour le rendu côté serveur (Next.js standalone, Nuxt, Remix…).
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | Répertoire source du projet |
| packageManager | String ! | "pnpm" | Package manager à utiliser : pnpm, npm, yarn. Défaut : pnpm |
| nodeVersion | String ! | "22" | Version de Node.js. Défaut : 22 |
| outputDir | String ! | - | Répertoire de sortie du build (ex: .next/standalone pour Next.js, .output pour Nuxt, build/server pour Remix) |
| startCommand | String ! | "node index.js" | Commande de démarrage du serveur. Défaut : node index.js |
| prismaPath | String | - | Répertoire des migrations Prisma dans le projet source (ex: “prisma”).
Quand fourni, le répertoire et le CLI Prisma sont inclus dans l’image
pour permettre l’exécution de |
| pnpmVersion | String ! | "10" | Version majeure de pnpm à installer (ex: “10”). Ignoré si packageManager != pnpm. |
| extraDirs | [String ! ] | - | Répertoires supplémentaires à copier depuis le build vers l’image finale (chemins relatifs à /app). Pour Next.js standalone : [“.next/static”, “public”] sont requis pour servir les assets clients. |
Example
dagger -m gitlab.com/build-core/daggerverse/node@15d2fb0fd717527628660e5c52418016798f56dc call \
--node-version string build-server --src DIR_PATH --package-manager string --node-version string --output-dir string --start-command string --pnpm-version stringfunc (m *MyModule) Example(nodeVersion string, src *dagger.Directory, packageManager string, nodeVersion1 string, outputDir string, startCommand string, pnpmVersion string) *dagger.Container {
return dag.
Node(nodeVersion).
BuildServer(src, packageManager, nodeVersion1, outputDir, startCommand, pnpmVersion)
}@function
def example(node_version: str, src: dagger.Directory, package_manager: str, node_version1: str, output_dir: str, start_command: str, pnpm_version: str) -> dagger.Container:
return (
dag.node(node_version)
.build_server(src, package_manager, node_version1, output_dir, start_command, pnpm_version)
)@func()
example(nodeVersion: string, src: Directory, packageManager: string, nodeVersion1: string, outputDir: string, startCommand: string, pnpmVersion: string): Container {
return dag
.node(nodeVersion)
.buildServer(src, packageManager, nodeVersion1, outputDir, startCommand, pnpmVersion)
}buildStatic() 🔗
BuildStatic compile le projet et retourne un conteneur nginx servant les fichiers statiques. Convient pour les SPA (React, Vue, Angular, Vite…).
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | Répertoire source du projet |
| packageManager | String ! | "pnpm" | Package manager à utiliser : pnpm, npm, yarn. Défaut : pnpm |
| nodeVersion | String ! | "22" | Version de Node.js. Défaut : 22 |
| outputDir | String ! | "dist" | Répertoire de sortie du build. Défaut : dist |
| nginxConfigPath | String | - | Chemin vers un fichier de configuration nginx personnalisé (optionnel) |
| pnpmVersion | String ! | "10" | Version majeure de pnpm à installer (ex: “10”). Ignoré si packageManager != pnpm. |
Example
dagger -m gitlab.com/build-core/daggerverse/node@15d2fb0fd717527628660e5c52418016798f56dc call \
--node-version string build-static --src DIR_PATH --package-manager string --node-version string --output-dir string --pnpm-version stringfunc (m *MyModule) Example(nodeVersion string, src *dagger.Directory, packageManager string, nodeVersion1 string, outputDir string, pnpmVersion string) *dagger.Container {
return dag.
Node(nodeVersion).
BuildStatic(src, packageManager, nodeVersion1, outputDir, pnpmVersion)
}@function
def example(node_version: str, src: dagger.Directory, package_manager: str, node_version1: str, output_dir: str, pnpm_version: str) -> dagger.Container:
return (
dag.node(node_version)
.build_static(src, package_manager, node_version1, output_dir, pnpm_version)
)@func()
example(nodeVersion: string, src: Directory, packageManager: string, nodeVersion1: string, outputDir: string, pnpmVersion: string): Container {
return dag
.node(nodeVersion)
.buildStatic(src, packageManager, nodeVersion1, outputDir, pnpmVersion)
}