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

package main
import (
"github.com/docker/docker/api/types/mount"
"github.com/nemunaire/minifaas/engine/docker"
"github.com/nemunaire/minifaas/jobs"
)
func RunJob(jobtype string) (string, error) {
job := jobs.GetJob(jobtype)
var mnts []mount.Mount
if job.DataMount {
myVolume, err := docker.CreateVolumeDir("/data", false)
if err != nil {
return "", err
}
mnts = append(mnts, *myVolume)
}
// Check if the image is here
hasimg, err := docker.HasImage(job.Image)
if err != nil {
return "", err
}
if !hasimg {
err = docker.PullImage(job.Image)
if err != nil {
return "", err
}
}
return docker.Create(
jobtype,
job.Image,
job.Cmd,
mnts,
)
}