dockerutils/README.md

75 lines
1.8 KiB
Markdown
Raw Normal View History

2020-11-07 18:40:39 +00:00
# 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)}
}
```