Dagger
Search

plattr-dev

Reads a developer's plattr.yaml and starts a complete local environment
with PostgreSQL, MinIO, PostgREST, and the app — all inside the Dagger engine.

Installation

dagger install github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd

Entrypoint

Return Type
PlattrDev
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
func (m *MyModule) Example() *dagger.PlattrDev  {
	return dag.
			PlattrDev()
}
@function
def example() -> dagger.PlattrDev:
	return (
		dag.plattr_dev()
	)
@func()
example(): PlattrDev {
	return dag
		.plattrDev()
}

Types

PlattrDev 🔗

ping() 🔗

Health check — verify the module is operational.

Return Type
String !
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 ping
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			PlattrDev().
			Ping(ctx)
}
@function
async def example() -> str:
	return await (
		dag.plattr_dev()
		.ping()
	)
@func()
async example(): Promise<string> {
	return dag
		.plattrDev()
		.ping()
}

detectFramework() 🔗

Detect the framework of a source directory.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 detect-framework --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			PlattrDev().
			DetectFramework(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.plattr_dev()
		.detect_framework(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.plattrDev()
		.detectFramework(source)
}

dev() 🔗

Start a complete local development environment.

Reads plattr.yaml, starts infrastructure services (PostgreSQL, MinIO, PostgREST), and runs the framework-specific dev server with all services bound and env vars set.

Return Type
Service !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
portInteger !3000No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 dev --source DIR_PATH --port integer
func (m *MyModule) Example(source *dagger.Directory, port int) *dagger.Service  {
	return dag.
			PlattrDev().
			Dev(source, port)
}
@function
def example(source: dagger.Directory, port: int) -> dagger.Service:
	return (
		dag.plattr_dev()
		.dev(source, port)
	)
@func()
example(source: Directory, port: number): Service {
	return dag
		.plattrDev()
		.dev(source, port)
}

preview() 🔗

Start an isolated preview environment for a pull request.

Similar to dev() but every resource name includes the PR number, so multiple previews and the main dev environment can coexist without collision.

Usage: dagger call preview –source=. –pr-number=42 up –ports=3100:3100,5433:5432,9002:9000

Return Type
Service !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
prNumberInteger !-No description provided
portInteger !3100No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 preview --source DIR_PATH --pr-number integer --port integer
func (m *MyModule) Example(source *dagger.Directory, prNumber int, port int) *dagger.Service  {
	return dag.
			PlattrDev().
			Preview(source, prNumber, port)
}
@function
def example(source: dagger.Directory, pr_number: int, port: int) -> dagger.Service:
	return (
		dag.plattr_dev()
		.preview(source, pr_number, port)
	)
@func()
example(source: Directory, prNumber: number, port: number): Service {
	return dag
		.plattrDev()
		.preview(source, prNumber, port)
}

migrate() 🔗

Run database migrations.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
engineString !"sql"No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 migrate --source DIR_PATH --engine string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, engine string) string  {
	return dag.
			PlattrDev().
			Migrate(ctx, source, engine)
}
@function
async def example(source: dagger.Directory, engine: str) -> str:
	return await (
		dag.plattr_dev()
		.migrate(source, engine)
	)
@func()
async example(source: Directory, engine: string): Promise<string> {
	return dag
		.plattrDev()
		.migrate(source, engine)
}

dbShell() 🔗

Open an interactive psql shell connected to the app’s database.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 db-shell --source DIR_PATH
func (m *MyModule) Example(source *dagger.Directory) *dagger.Container  {
	return dag.
			PlattrDev().
			DbShell(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.plattr_dev()
		.db_shell(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.plattrDev()
		.dbShell(source)
}

seed() 🔗

Run a SQL seed file against the app’s database.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
seedFileString !"seed.sql"No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 seed --source DIR_PATH --seed-file string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, seedFile string) string  {
	return dag.
			PlattrDev().
			Seed(ctx, source, seedFile)
}
@function
async def example(source: dagger.Directory, seed_file: str) -> str:
	return await (
		dag.plattr_dev()
		.seed(source, seed_file)
	)
@func()
async example(source: Directory, seedFile: string): Promise<string> {
	return dag
		.plattrDev()
		.seed(source, seedFile)
}

build() 🔗

Build a production-optimized container image.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
frameworkString -No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 build --source DIR_PATH
func (m *MyModule) Example(source *dagger.Directory) *dagger.Container  {
	return dag.
			PlattrDev().
			Build(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.plattr_dev()
		.build(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.plattrDev()
		.build(source)
}

test() 🔗

Run the app’s test suite against real infrastructure.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 test --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			PlattrDev().
			Test(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.plattr_dev()
		.test(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.plattrDev()
		.test(source)
}

buildAndPush() 🔗

Build the production image and push it to a container registry.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
appNameString !-No description provided
environmentString !-No description provided
registryUrlString !-No description provided
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
 build-and-push --source DIR_PATH --app-name string --environment string --registry-url string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, appName string, environment string, registryUrl string) string  {
	return dag.
			PlattrDev().
			BuildAndPush(ctx, source, appName, environment, registryUrl)
}
@function
async def example(source: dagger.Directory, app_name: str, environment: str, registry_url: str) -> str:
	return await (
		dag.plattr_dev()
		.build_and_push(source, app_name, environment, registry_url)
	)
@func()
async example(source: Directory, appName: string, environment: string, registryUrl: string): Promise<string> {
	return dag
		.plattrDev()
		.buildAndPush(source, appName, environment, registryUrl)
}