Dagger
Search

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@4121f648e7e2cf5c818f7fe7c878373b768daf30

Entrypoint

Return Type
Node !
Arguments
NameTypeDefault ValueDescription
nodeVersionString !"22"Version de Node.js à utiliser. Défaut : 22
Example
dagger -m gitlab.com/build-core/daggerverse/node@4121f648e7e2cf5c818f7fe7c878373b768daf30 call \
 --node-version string
func (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@4121f648e7e2cf5c818f7fe7c878373b768daf30 call \
 --node-version string node-version
func (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
NameTypeDefault ValueDescription
srcDirectory !-

Répertoire source du projet

packageManagerString !"pnpm"

Package manager à utiliser : pnpm, npm, yarn. Défaut : pnpm

nodeVersionString !"22"

Version de Node.js. Défaut : 22

outputDirString !-

Répertoire de sortie du build (ex: .next/standalone pour Next.js, .output pour Nuxt, build/server pour Remix)

startCommandString !"node index.js"

Commande de démarrage du serveur. Défaut : node index.js

prismaPathString -

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 prisma migrate deploy en initContainer.

pnpmVersionString !"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.

frameworkString -

Framework cible. Valeurs reconnues : “nextjs”. Active les optimisations spécifiques au framework (cache de build, etc.).

Example
dagger -m gitlab.com/build-core/daggerverse/node@4121f648e7e2cf5c818f7fe7c878373b768daf30 call \
 --node-version string build-server --src DIR_PATH --package-manager string --node-version string --output-dir string --start-command string --pnpm-version string
func (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
NameTypeDefault ValueDescription
srcDirectory !-

Répertoire source du projet

packageManagerString !"pnpm"

Package manager à utiliser : pnpm, npm, yarn. Défaut : pnpm

nodeVersionString !"22"

Version de Node.js. Défaut : 22

outputDirString !"dist"

Répertoire de sortie du build. Défaut : dist

nginxConfigPathString -

Chemin vers un fichier de configuration nginx personnalisé (optionnel)

pnpmVersionString !"10"

Version majeure de pnpm à installer (ex: “10”). Ignoré si packageManager != pnpm.

Example
dagger -m gitlab.com/build-core/daggerverse/node@4121f648e7e2cf5c818f7fe7c878373b768daf30 call \
 --node-version string build-static --src DIR_PATH --package-manager string --node-version string --output-dir string --pnpm-version string
func (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)
}