Go to file
2020-11-07 21:55:31 +01:00
.drone.yml Intial Commit 2020-11-07 21:55:31 +01:00
.editorconfig Intial Commit 2020-11-07 21:55:31 +01:00
.gitattributes Intial Commit 2020-11-07 21:55:31 +01:00
.gitignore Intial Commit 2020-11-07 21:55:31 +01:00
builder.go Intial Commit 2020-11-07 21:55:31 +01:00
client_test.go Intial Commit 2020-11-07 21:55:31 +01:00
client.go Intial Commit 2020-11-07 21:55:31 +01:00
go.mod Intial Commit 2020-11-07 21:55:31 +01:00
go.sum Intial Commit 2020-11-07 21:55:31 +01:00
LICENSE Intial Commit 2020-11-07 21:55:31 +01:00
Makefile Intial Commit 2020-11-07 21:55:31 +01:00
README.md Intial Commit 2020-11-07 21:55:31 +01:00
watcher.go Intial Commit 2020-11-07 21:55:31 +01:00

dockerutils

Build Status

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)}
}