Merge branch 'joeyconfig'

This commit is contained in:
Joey Hess 2015-05-12 11:06:51 -04:00
commit 40fc41b8c1
2 changed files with 25 additions and 2 deletions

2
debian/changelog vendored
View File

@ -2,6 +2,8 @@ propellor (2.5.0) UNRELEASED; urgency=medium
* cmdProperty' renamed to cmdPropertyEnv to make way for a new,
more generic cmdProperty' (API change)
* Add docker image related properties.
Thanks, Antoine Eiche.
-- Joey Hess <id@joeyh.name> Thu, 07 May 2015 12:08:34 -0400

View File

@ -11,12 +11,14 @@ module Propellor.Property.Docker (
configured,
container,
docked,
imageBuilt,
imagePulled,
memoryLimited,
garbageCollected,
tweaked,
Image,
ContainerName,
Container,
Container(..),
-- * Container configuration
dns,
hostname,
@ -43,6 +45,7 @@ import Propellor.Types.Docker
import Propellor.Types.CmdLine
import qualified Propellor.Property.File as File
import qualified Propellor.Property.Apt as Apt
import qualified Propellor.Property.Cmd as Cmd
import qualified Propellor.Shim as Shim
import Utility.SafeCommand
import Utility.Path
@ -76,7 +79,10 @@ configured = prop `requires` installed
type ContainerName = String
-- | A docker container.
data Container = Container Image Host
data Container = Container
{ containerImage :: Image
, containerHost :: Host
}
instance PropAccum Container where
(Container i h) & p = Container i (h & p)
@ -135,6 +141,21 @@ docked ctr@(Container _ h) =
]
]
-- | Build the image from a directory containing a Dockerfile.
imageBuilt :: FilePath -> Image -> Property NoInfo
imageBuilt directory image = describe built msg
where
msg = "docker image " ++ image ++ " built from " ++ directory
built = Cmd.cmdProperty' dockercmd ["build", "--tag", image, "./"] workDir
workDir p = p { cwd = Just directory }
-- | Pull the image from the standard Docker Hub registry.
imagePulled :: Image -> Property NoInfo
imagePulled image = describe pulled msg
where
msg = "docker image " ++ image ++ " pulled"
pulled = Cmd.cmdProperty dockercmd ["pull", image]
propigateContainerInfo :: (IsProp (Property i)) => Container -> Property i -> Property HasInfo
propigateContainerInfo ctr@(Container _ h) p = propigateContainer ctr p'
where