75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
# 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)}
|
|
}
|
|
```
|