.drone.yml | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
builder.go | ||
client_test.go | ||
client.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md | ||
watcher.go |
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:
go get git.cryptic.systems/volker.raschek/dockerutils
Usage
Example: Create and remove postgreSQL container
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
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)}
}