This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
minifaas/jobs.go

41 lines
687 B
Go
Raw Permalink Normal View History

2021-05-09 16:02:23 +00:00
package main
import (
"github.com/docker/docker/api/types/mount"
"github.com/nemunaire/minifaas/engine/docker"
2021-07-31 15:35:29 +00:00
"github.com/nemunaire/minifaas/jobs"
2021-05-09 16:02:23 +00:00
)
func RunJob(jobtype string) (string, error) {
2021-07-31 15:35:29 +00:00
job := jobs.GetJob(jobtype)
2021-05-09 16:02:23 +00:00
var mnts []mount.Mount
2021-07-31 15:35:29 +00:00
if job.DataMount {
2021-05-09 16:02:23 +00:00
myVolume, err := docker.CreateVolumeDir("/data", false)
if err != nil {
return "", err
}
mnts = append(mnts, *myVolume)
}
2021-05-09 16:02:48 +00:00
// Check if the image is here
2021-07-31 15:35:29 +00:00
hasimg, err := docker.HasImage(job.Image)
2021-05-09 16:02:48 +00:00
if err != nil {
return "", err
}
if !hasimg {
2021-07-31 15:35:29 +00:00
err = docker.PullImage(job.Image)
2021-05-09 16:02:48 +00:00
if err != nil {
return "", err
}
}
2021-07-31 15:16:38 +00:00
return docker.Create(
2021-05-09 16:02:23 +00:00
jobtype,
2021-07-31 15:35:29 +00:00
job.Image,
job.Cmd,
2021-05-09 16:02:23 +00:00
mnts,
)
}