-
Notifications
You must be signed in to change notification settings - Fork 2
/
lambda.go
45 lines (36 loc) · 967 Bytes
/
lambda.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package lambda
import (
"context"
"github.com/cresta/magehelper/files"
"github.com/magefile/mage/mg"
"github.com/cresta/magehelper/docker"
"github.com/cresta/magehelper/env"
"github.com/cresta/magehelper/pipe"
)
var Instance = &Lambda{}
type Lambda struct {
Env env.Env
Docker *docker.Docker
}
func (l *Lambda) docker() *docker.Docker {
if l == nil || l.Docker == nil {
return docker.Instance
}
return l.Docker
}
func (l *Lambda) RunContainer(ctx context.Context) error {
mg.CtxDeps(ctx, docker.Build)
args := []string{
"run", "-p", "9000:8080",
}
envList := l.Env.GetDefault("DOCKER_RUN_ENV", "env.list")
if files.FileExists(envList) {
args = append(args, "--env-file", envList)
}
args = append(args, l.docker().Image(), "/main")
return pipe.NewPiped("docker", args...).Run(ctx)
}
// Execute a docker container for this lambda, using lambda RIE
func RunContainer(ctx context.Context) error {
return Instance.RunContainer(ctx)
}