func (t *AppTarget) DockerRun(c *core.Context) *docker.Run { dr := docker.NewRun(c.DockerTag()) port0, err := ports.GetFreePort() if err != nil { cli.Fatalf("Unable to get free port: %s", err) } dr.AddEnv("PORT0", strconv.Itoa(port0)) dr.AddEnv("TASK_HOST", core.DivineTaskHost()) return dr }
// DockerRun returns a configured *docker.Run, which is used to create a new // container when the old one is stale or does not exist. func (t *CompileTarget) DockerRun(c *core.Context) *docker.Run { containerName := t.ContainerName(c) run := docker.NewRun(c.DockerTag()) run.Name = containerName run.AddEnv("ARTIFACT_NAME", t.artifactName(c)) uid := cmd.Stdout("id", "-u") gid := cmd.Stdout("id", "-g") artifactOwner := fmt.Sprintf("%s:%s", uid, gid) run.AddEnv("ARTIFACT_OWNER", artifactOwner) artDir := t.artifactDir(c) dir.EnsureExists(artDir) run.AddVolume(artDir, "/artifacts") run.AddVolume(c.WorkDir, "/wd") run.Command = "npm install" return run }
func (t *TestTarget) DockerRun(c *core.Context) *docker.Run { containerName := t.ContainerName(c) run := docker.NewRun(c.DockerTag()) run.Name = containerName //run.AddEnv("ARTIFACT_NAME", t.artifactName(c)) uid := cmd.Stdout("id", "-u") gid := cmd.Stdout("id", "-g") artifactOwner := fmt.Sprintf("%s:%s", uid, gid) run.AddEnv("ARTIFACT_OWNER", artifactOwner) artDir := t.artifactDir(c) dir.EnsureExists(artDir) run.AddVolume(artDir, "/artifacts") run.AddVolume(c.WorkDir, "/wd") run.Command = fmt.Sprintf("go generate && { [ -d Godeps ] && godep go test ./... || go test ./...; }") return run }
func (t *CompileTarget) DockerRun(c *core.Context) *docker.Run { containerName := t.ContainerName(c) run := docker.NewRun(c.DockerTag()) run.Name = containerName run.AddEnv("ARTIFACT_NAME", t.artifactName(c)) uid := cmd.Stdout("id", "-u") gid := cmd.Stdout("id", "-g") artifactOwner := fmt.Sprintf("%s:%s", uid, gid) run.AddEnv("ARTIFACT_OWNER", artifactOwner) artDir := t.artifactDir(c) dir.EnsureExists(artDir) run.AddVolume(artDir, "/artifacts") run.AddVolume(c.WorkDir, "/wd") binName := fmt.Sprintf("%s-%s", c.CanonicalPackageName(), c.BuildVersion) run.Command = fmt.Sprintf("[ -d Godeps ] && godep go build -o %s || go build -o %s", binName, binName) return run }