Check if image exists before building
This commit is contained in:
parent
c186ecf521
commit
1b8c2eea8d
1 changed files with 12 additions and 6 deletions
|
@ -40,13 +40,19 @@ data EvalResult
|
|||
buildImage :: Language -> Myriad ()
|
||||
buildImage lang = do
|
||||
env <- ask
|
||||
logInfo ["Building image ", cs $ imageName lang]
|
||||
exec_ ["docker build -t ", imageName lang, " ", cs (env ^. #languagesDir) </> cs (lang ^. #name)]
|
||||
setupQSems
|
||||
logInfo ["Built image ", cs $ imageName lang]
|
||||
when (env ^. #config % #prepareContainers) . void $ setupContainer lang
|
||||
logInfo ["Checking for image ", cs $ imageName lang]
|
||||
res <- try $ exec ["docker images -q ", imageName lang]
|
||||
case res of
|
||||
Left (SomeException err) -> logError ["An exception occured when checking for image ", cs $ imageName lang, ":\n", cs $ show err]
|
||||
Right s -> do
|
||||
when (BL.null s) . void $ do -- If string is empty that means the image does not yet exist
|
||||
logInfo ["Building image ", cs $ imageName lang]
|
||||
exec_ ["docker build -t ", imageName lang, " ", cs (env ^. #languagesDir) </> cs (lang ^. #name)]
|
||||
logInfo ["Built image ", cs $ imageName lang]
|
||||
setupQSems
|
||||
when (env ^. #config % #prepareContainers) . void $ setupContainer lang
|
||||
where
|
||||
setupQSems :: Myriad ()
|
||||
setupQSems :: Myriad ()
|
||||
setupQSems = do
|
||||
env <- ask
|
||||
csem <- newQSem 1 -- We only want one container to be set up at a time
|
||||
|
|
Loading…
Reference in a new issue