diff options
| author | Joey Hess <joeyh@joeyh.name> | 2015-05-12 11:06:51 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2015-05-12 11:06:51 -0400 |
| commit | 40fc41b8c1c302f8384f38ba9683a09aa64570e8 (patch) | |
| tree | 7d423ae5d779e524864eb3d653cd024e6d6bec7c | |
| parent | a1926ac2d08c79a131f2619e23caddeb05757f92 (diff) | |
| parent | 04d04fe9174563fef2276fc66235074ac2a3392f (diff) | |
Merge branch 'joeyconfig'
| -rw-r--r-- | debian/changelog | 2 | ||||
| -rw-r--r-- | src/Propellor/Property/Docker.hs | 25 |
2 files changed, 25 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog index 37d31938..dc3b09de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 diff --git a/src/Propellor/Property/Docker.hs b/src/Propellor/Property/Docker.hs index 6ca5005c..745b5622 100644 --- a/src/Propellor/Property/Docker.hs +++ b/src/Propellor/Property/Docker.hs @@ -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 |
