# dockerutils [![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/dockerutils/status.svg)](https://drone.cryptic.systems/volker.raschek/dockerutils) dockerutils is a small library which extends the official docker library to create and start images over a builder. Additionally the library provide functions for easy removeing resources based on ids, names or labels which the official library does not directly supports. ## Installing Install the library by the following command: ```bash go get git.cryptic.systems/volker.raschek/dockerutils ``` ## Usage ### Example: Create and remove postgreSQL container ```go package main import "git.cryptic.systems/volker.raschek/dockerutils" func noErr(err){ if err != nil { panic(err) } } func main(){ dockerClient, err := dockerutils.New() noErr(err) postgresContainerID, err := dockerClient.NewBuilder("postgres:13-alpine"). Port(fmt.Sprintf("5432:5432/tcp", postgresHostPort)). Pull(). AddEnv("PGTZ", "Europe/Berlin"). AddEnv("POSTGRES_PASSWORD", postgres). AddEnv("TZ", "Europe/Berlin"). Mount("/etc/localtime", "/etc/localtime"). Start(context.Background()) noErr(err) defer func(){dockerClient.ContainerRemoveByIDs(context.Background(), postgresContainerID)} } ``` ### Example: Create and remove container network ```go package main import ( "git.cryptic.systems/volker.raschek/dockerutils" "github.com/docker/docker/api/types" ) func noErr(err){ if err != nil { panic(err) } } func main(){ dockerClient, err := dockerutils.New() noErr(err) containerNetwork, err := dockerClient.NetworkCreate(ctx, "my-network", tt.NetworkCreate{Labels: map[string]string{"key": "value"}}) noErr(err) defer func(){dockerClient.NetworkRemove(context.Background(), containerNetwork.ID)} } ```