MCPcopy Create free account
hub / github.com/bytesizedhosting/bcd / Install

Method Install

plugins/murmur/murmur.go:34–88  ·  view source on GitHub ↗
(opts *MurmurOpts)

Source from the content-addressed store, hash-verified

32}
33
34func (self *Murmur) Install(opts *MurmurOpts) error {
35 var err error
36
37 err = opts.SetDefault(self.Name)
38 if err != nil {
39 return err
40 }
41
42 log.WithFields(log.Fields{
43 "plugin": self.Name,
44 "config_folder": opts.ConfigFolder,
45 "username": opts.Username,
46 }).Debug("Plugin options")
47
48 err = self.WriteTemplate("plugins/murmur/data/murmur.ini", opts.ConfigFolder+"/murmur.ini", opts)
49 if err != nil {
50 return err
51 }
52
53 log.Debugln("Pulling docker image", self.imageName)
54 err = self.DockerClient.PullImage(docker.PullImageOptions{Repository: self.imageName}, docker.AuthConfiguration{})
55 if err != nil {
56 return err
57 }
58
59 portBindings := map[docker.Port][]docker.PortBinding{
60 "64738/tcp": []docker.PortBinding{docker.PortBinding{HostPort: opts.WebPort}},
61 "64738/udp": []docker.PortBinding{docker.PortBinding{HostPort: opts.WebPort}},
62 }
63
64 hostConfig := docker.HostConfig{
65 PortBindings: portBindings,
66 Binds: plugins.DefaultBindings(opts),
67 }
68
69 conf := docker.Config{Env: []string{"PUID=" + opts.User.Uid}, Image: self.imageName}
70
71 log.Debugln("Creating docker container")
72 c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_murmur_" + opts.WebPort})
73
74 if err != nil {
75 return err
76 }
77
78 log.Debugln("Starting docker container")
79
80 err = self.DockerClient.StartContainer(c.ID, nil)
81 if err != nil {
82 return err
83 }
84
85 opts.ContainerId = c.ID
86
87 return nil
88}

Callers

nothing calls this directly

Calls 2

SetDefaultMethod · 0.80
WriteTemplateMethod · 0.80

Tested by

no test coverage detected