make fn run pass through --link flags (#496)

This commit is contained in:
Jordan Krage
2017-01-26 16:01:52 -06:00
committed by Travis Reeder
parent 8519b6d266
commit 0ce3e1d04b
2 changed files with 11 additions and 3 deletions

View File

@@ -31,6 +31,10 @@ func runflags() []cli.Flag {
Name: "e",
Usage: "select environment variables to be sent to function",
},
cli.StringSliceFlag{
Name: "link",
Usage: "select container links for the function",
},
}
}
@@ -47,10 +51,10 @@ func (r *runCmd) run(c *cli.Context) error {
image = ff.FullName()
}
return runff(image, stdin(), os.Stdout, os.Stderr, c.StringSlice("e"))
return runff(image, stdin(), os.Stdout, os.Stderr, c.StringSlice("e"), c.StringSlice("link"))
}
func runff(image string, stdin io.Reader, stdout, stderr io.Writer, restrictedEnv []string) error {
func runff(image string, stdin io.Reader, stdout, stderr io.Writer, restrictedEnv []string, links []string) error {
sh := []string{"docker", "run", "--rm", "-i"}
var env []string
@@ -65,6 +69,10 @@ func runff(image string, stdin io.Reader, stdout, stderr io.Writer, restrictedEn
env = append(env, envvar)
}
for _, l := range links {
sh = append(sh, "--link", l)
}
dockerenv := []string{"DOCKER_TLS_VERIFY", "DOCKER_HOST", "DOCKER_CERT_PATH", "DOCKER_MACHINE_NAME"}
for _, e := range dockerenv {
env = append(env, fmt.Sprint(e, "=", os.Getenv(e)))

View File

@@ -134,7 +134,7 @@ func runlocaltest(target string, in, expectedOut, expectedErr *string, env map[s
restrictedEnv = append(restrictedEnv, k)
}
if err := runff(target, stdin, &stdout, &stderr, restrictedEnv); err != nil {
if err := runff(target, stdin, &stdout, &stderr, restrictedEnv, nil); err != nil {
return fmt.Errorf("%v\nstdout:%s\nstderr:%s\n", err, stdout.String(), stderr.String())
}