Move docker specific volume & network settings into backend code (#1956)

... if we want to make them be changed ... it should be an
agent-backend-option
This commit is contained in:
6543
2023-07-09 21:03:19 +02:00
committed by GitHub
parent 89623471fb
commit 5393aa5d3b
4 changed files with 21 additions and 35 deletions

View File

@@ -18,6 +18,7 @@ import (
"context"
"io"
"os"
"runtime"
"strings"
"github.com/docker/docker/api/types"
@@ -41,6 +42,12 @@ type docker struct {
volumes []string
}
const (
networkDriverNAT = "nat"
networkDriverBridge = "bridge"
volumeDriver = "local"
)
// New returns a new Docker Engine.
func New() backend.Engine {
return &docker{
@@ -97,21 +104,22 @@ func (e *docker) Load(ctx context.Context) error {
func (e *docker) Setup(_ context.Context, conf *backend.Config) error {
for _, vol := range conf.Volumes {
_, err := e.client.VolumeCreate(noContext, volume.VolumeCreateBody{
Name: vol.Name,
Driver: vol.Driver,
DriverOpts: vol.DriverOpts,
// Labels: defaultLabels,
Name: vol.Name,
Driver: volumeDriver,
})
if err != nil {
return err
}
}
networkDriver := networkDriverBridge
if runtime.GOOS == "windows" {
networkDriver = networkDriverNAT
}
for _, n := range conf.Networks {
_, err := e.client.NetworkCreate(noContext, n.Name, types.NetworkCreate{
Driver: n.Driver,
Options: n.DriverOpts,
Driver: networkDriver,
EnableIPv6: e.enableIPv6,
// Labels: defaultLabels,
})
if err != nil {
return err