Dagger
Search

postgres

This module is designed for development and CI purposes only, do not use it to host a production server. The module implements a server and a client that can work together.

You can use it to run a local postgreSQL database but also in your CI pipeline to test your application with integrations tests.

Installation

dagger install github.com/quartz-technology/daggerverse/postgres@v0.0.3

Entrypoint

Return Type
Postgres !
Arguments
NameTypeDescription
userSecret !User to access the database This value will be set as a secret variable in the container: `POSTGRES_USER`
passwordSecret !Password to access the database. This value will be set as a secret variable in the container: `POSTGRES_PASSWORD`
dbPortInteger !Port to expose the database on.
dbNameString Name of the database to create on start. If it's not set, the database's name will be the user's one.
cacheBoolean Enable data persistency by using a volume.
versionString PostgreSQL version to pull from the registry.
configFileFile Extra configuration file to add to the postgres database. This file will be copied in the container to `/usr/share/postgresql/postgresql.conf`
initScriptDirectory Scripts to execute when the database is started. The files will be copied to `/docker-entrypoint-initdb.d`
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *Postgres  {
	return dag.
			Postgres(user, password, dbPort)
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dag.Postgres:
	return (
		dag.postgres(user, password, db_port)
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): Postgres {
	return dag
		.postgres(user, password, dbPort)
}

Types

Postgres 🔗

user() 🔗

Return Type
Secret !
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *Secret  {
	return dag.
			Postgres(user, password, dbPort).
			User()
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dagger.Secret:
	return (
		dag.postgres(user, password, db_port)
		.user()
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): Secret {
	return dag
		.postgres(user, password, dbPort)
		.user()
}

password() 🔗

Return Type
Secret !
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *Secret  {
	return dag.
			Postgres(user, password, dbPort).
			Password()
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dagger.Secret:
	return (
		dag.postgres(user, password, db_port)
		.password()
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): Secret {
	return dag
		.postgres(user, password, dbPort)
		.password()
}

name() 🔗

Return Type
String !
Example
func (m *myModule) example(ctx context.Context, user *Secret, password *Secret, dbPort int) string  {
	return dag.
			Postgres(user, password, dbPort).
			Name(ctx)
}
@function
async def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> str:
	return await (
		dag.postgres(user, password, db_port)
		.name()
	)
@func()
async example(user: Secret, password: Secret, dbPort: number, ): Promise<string> {
	return dag
		.postgres(user, password, dbPort)
		.name()
}

port() 🔗

Return Type
Integer !
Example
func (m *myModule) example(ctx context.Context, user *Secret, password *Secret, dbPort int) int  {
	return dag.
			Postgres(user, password, dbPort).
			Port(ctx)
}
@function
async def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> int:
	return await (
		dag.postgres(user, password, db_port)
		.port()
	)
@func()
async example(user: Secret, password: Secret, dbPort: number, ): Promise<number> {
	return dag
		.postgres(user, password, dbPort)
		.port()
}

version() 🔗

Return Type
String !
Example
func (m *myModule) example(ctx context.Context, user *Secret, password *Secret, dbPort int) string  {
	return dag.
			Postgres(user, password, dbPort).
			Version(ctx)
}
@function
async def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> str:
	return await (
		dag.postgres(user, password, db_port)
		.version()
	)
@func()
async example(user: Secret, password: Secret, dbPort: number, ): Promise<string> {
	return dag
		.postgres(user, password, dbPort)
		.version()
}

configFile() 🔗

Return Type
File !
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *File  {
	return dag.
			Postgres(user, password, dbPort).
			ConfigFile()
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dagger.File:
	return (
		dag.postgres(user, password, db_port)
		.config_file()
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): File {
	return dag
		.postgres(user, password, dbPort)
		.configFile()
}

initScripts() 🔗

Return Type
Directory !
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *Directory  {
	return dag.
			Postgres(user, password, dbPort).
			InitScripts()
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dagger.Directory:
	return (
		dag.postgres(user, password, db_port)
		.init_scripts()
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): Directory {
	return dag
		.postgres(user, password, dbPort)
		.initScripts()
}

cache() 🔗

Return Type
Boolean !
Example
func (m *myModule) example(ctx context.Context, user *Secret, password *Secret, dbPort int) bool  {
	return dag.
			Postgres(user, password, dbPort).
			Cache(ctx)
}
@function
async def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> bool:
	return await (
		dag.postgres(user, password, db_port)
		.cache()
	)
@func()
async example(user: Secret, password: Secret, dbPort: number, ): Promise<boolean> {
	return dag
		.postgres(user, password, dbPort)
		.cache()
}

client() 🔗

Client returns a configured client with user and password set. Note: if you want to set the host, you can append this option on usage

Return Type
Container !
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *Container  {
	return dag.
			Postgres(user, password, dbPort).
			Client()
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dagger.Container:
	return (
		dag.postgres(user, password, db_port)
		.client()
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): Container {
	return dag
		.postgres(user, password, dbPort)
		.client()
}

database() 🔗

Database returns a ready to run Postgres container with all configuration applied.

Return Type
Container !
Example
func (m *myModule) example(user *Secret, password *Secret, dbPort int) *Container  {
	return dag.
			Postgres(user, password, dbPort).
			Database()
}
@function
def example(user: dagger.Secret, password: dagger.Secret, db_port: int, ) -> dagger.Container:
	return (
		dag.postgres(user, password, db_port)
		.database()
	)
@func()
example(user: Secret, password: Secret, dbPort: number, ): Container {
	return dag
		.postgres(user, password, dbPort)
		.database()
}