You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform/vendor/github.com/arukasio/cli/run.go

60 lines
1.3 KiB

package arukas
func createAndRunContainer(name string, image string, instances int, mem int, envs []string, ports []string, cmd string, appName string) {
client := NewClientWithOsExitOnErr()
var appSet AppSet
// create an app
newApp := App{Name: appName}
var parsedEnvs Envs
var parsedPorts Ports
if len(envs) > 0 {
var err error
parsedEnvs, err = ParseEnv(envs)
if err != nil {
client.Println(nil, err)
ExitCode = 1
return
}
}
if len(ports) > 0 {
var err error
parsedPorts, err = ParsePort(ports)
if err != nil {
client.Println(nil, err)
ExitCode = 1
return
}
}
newContainer := Container{
Envs: parsedEnvs,
Ports: parsedPorts,
ImageName: image,
Mem: mem,
Instances: instances,
Cmd: cmd,
Name: name,
}
newAppSet := AppSet{
App: newApp,
Container: newContainer,
}
if err := client.Post(&appSet, "/app-sets", newAppSet); err != nil {
client.Println(nil, err)
ExitCode = 1
return
}
startContainer(appSet.Container.ID, true)
client.Println(nil, "ID", "IMAGE", "CREATED", "STATUS", "NAME", "ENDPOINT")
client.Println(nil, appSet.Container.ID, appSet.Container.ImageName, appSet.Container.CreatedAt.String(),
appSet.Container.StatusText, appSet.Container.Name, appSet.Container.Endpoint)
}