From 72e86f736dca3b2da6f200d91a459c8faab3e288 Mon Sep 17 00:00:00 2001 From: Emile Date: Sun, 6 Oct 2019 23:52:09 +0200 Subject: basic setup --- src/docker.go | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/docker.go (limited to 'src/docker.go') diff --git a/src/docker.go b/src/docker.go new file mode 100644 index 0000000..846a77e --- /dev/null +++ b/src/docker.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "log" + "os" + + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/network" + "github.com/docker/docker/client" +) + +const ( + fixedDockerVersion = "1.38" +) + +var ( + dockerCtx context.Context + dockerCLI *client.Client +) + +func setupContext() { + if dockerCtx == nil { + dockerCtx = context.Background() + } +} + +func setupDockerCLI() (err error) { + os.Setenv("DOCKER_API_VERSION", "1.27") + if dockerCLI == nil { + dockerCLI, err = client.NewEnvClient() + } + return err +} + +func spawnCompanion(username string) string { + log.Println("Spwaning a new companion container") + // setup the context and the docker cli connection + setupContext() + setupDockerCLI() + + Config := &container.Config{ + // docker socket + // companion seed + Image: "circus-companion:latest", + // + // username + // accesscode + // sessionsalt + // vpnremote address + // vpnrempte port + Cmd: []string{"-username", username, "-accesscode", accesscode}, + } + + HostConfig := &container.HostConfig{ + // ports (nat.PortMap) + } + + NetworkingConfig := &network.NetworkingConfig{ + // network + } + + _, err := dockerCLI.ContainerCreate(dockerCtx, Config, HostConfig, NetworkingConfig, "") + if err != nil { + panic(err) + } + + return accesscode +} -- cgit 1.4.1