docker 0.1.0.0 → 0.1.0.1
raw patch · 10 files changed
+353/−351 lines, 10 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Docker: _dockerEmptyPostQuery :: Endpoint -> DockerClientOpts -> IO (Response ByteString)
- Docker: _dockerGetQuery :: Endpoint -> DockerClientOpts -> IO (Response ByteString)
- Docker: _dockerPostQuery :: ToJSON a => Endpoint -> DockerClientOpts -> a -> IO (Response ByteString)
- Docker: constructRelativeUrl :: String -> String
- Docker: constructUrl :: URL -> ApiVersion -> Endpoint -> URL
- Docker: createContainer :: DockerClientOpts -> CreateContainerOpts -> IO (Maybe Text)
- Docker: decodeResponse :: (FromJSON a, Functor f) => f (Response ByteString) -> f (Maybe a)
- Docker: defaultClientOpts :: DockerClientOpts
- Docker: emptyPost :: String
- Docker: fullUrl :: DockerClientOpts -> Endpoint -> URL
- Docker: getContainerLogs :: DockerClientOpts -> String -> IO (ByteString)
- Docker: getContainerLogsStream :: DockerClientOpts -> String -> IO ()
- Docker: getDockerContainers :: DockerClientOpts -> IO (Maybe [DockerContainer])
- Docker: getDockerImages :: DockerClientOpts -> IO (Maybe [DockerImage])
- Docker: getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)
- Docker: getOutOfResponse :: AsValue body0 => Text -> Response body0 -> Maybe Text
- Docker: getResponseStatusCode :: Response body -> Status
- Docker: killContainer :: DockerClientOpts -> String -> IO (Status)
- Docker: pauseContainer :: DockerClientOpts -> String -> IO (Status)
- Docker: restartContainer :: DockerClientOpts -> String -> IO (Status)
- Docker: startContainer :: DockerClientOpts -> String -> StartContainerOpts -> IO (Status)
- Docker: stopContainer :: DockerClientOpts -> String -> IO (Status)
- Docker: unpauseContainer :: DockerClientOpts -> String -> IO (Status)
- Docker.Options: dopts :: Options
- Docker.Types: CreateContainerOpts :: String -> String -> Int -> Int -> Bool -> Bool -> Bool -> Maybe Object -> Bool -> Bool -> Bool -> Maybe Object -> [String] -> String -> Maybe Object -> Maybe Object -> String -> Bool -> Maybe Object -> CreateContainerOpts
- Docker.Types: DockerClientOpts :: ApiVersion -> URL -> DockerClientOpts
- Docker.Types: DockerContainer :: ResourceId -> ResourceId -> String -> Int -> [String] -> String -> Maybe [PortMap] -> DockerContainer
- Docker.Types: DockerImage :: ResourceId -> Int -> Maybe String -> [Tag] -> Int -> Int -> DockerImage
- Docker.Types: DockerVersion :: String -> String -> String -> String -> String -> DockerVersion
- Docker.Types: PortMap :: IP -> Port -> Port -> PortType -> PortMap
- Docker.Types: ResourceId :: String -> ResourceId
- Docker.Types: StartContainerOpts :: [Text] -> [Text] -> [(Text, Text)] -> [(Text, [(Text, Text)])] -> Bool -> Bool -> [Text] -> [Text] -> StartContainerOpts
- Docker.Types: _Arch :: DockerVersion -> String
- Docker.Types: _Binds :: StartContainerOpts -> [Text]
- Docker.Types: _Dns :: StartContainerOpts -> [Text]
- Docker.Types: _GitCommit :: DockerVersion -> String
- Docker.Types: _GoVersion :: DockerVersion -> String
- Docker.Types: _KernelVersion :: DockerVersion -> String
- Docker.Types: _Links :: StartContainerOpts -> [Text]
- Docker.Types: _LxcConf :: StartContainerOpts -> [(Text, Text)]
- Docker.Types: _PortBindings :: StartContainerOpts -> [(Text, [(Text, Text)])]
- Docker.Types: _Privileged :: StartContainerOpts -> Bool
- Docker.Types: _PublishAllPorts :: StartContainerOpts -> Bool
- Docker.Types: _Version :: DockerVersion -> String
- Docker.Types: _VolumesFrom :: StartContainerOpts -> [Text]
- Docker.Types: _attachStderr :: CreateContainerOpts -> Bool
- Docker.Types: _attachStdin :: CreateContainerOpts -> Bool
- Docker.Types: _attachStdout :: CreateContainerOpts -> Bool
- Docker.Types: _cmd :: CreateContainerOpts -> [String]
- Docker.Types: _command :: DockerContainer -> String
- Docker.Types: _containerCreatedAt :: DockerContainer -> Int
- Docker.Types: _containerId :: DockerContainer -> ResourceId
- Docker.Types: _containerImageId :: DockerContainer -> ResourceId
- Docker.Types: _disableNetwork :: CreateContainerOpts -> Bool
- Docker.Types: _env :: CreateContainerOpts -> Maybe Object
- Docker.Types: _exposedPorts :: CreateContainerOpts -> Maybe Object
- Docker.Types: _hostname :: CreateContainerOpts -> String
- Docker.Types: _id :: ResourceId -> String
- Docker.Types: _image :: CreateContainerOpts -> String
- Docker.Types: _imageCreatedAt :: DockerImage -> Int
- Docker.Types: _imageId :: DockerImage -> ResourceId
- Docker.Types: _ip :: PortMap -> IP
- Docker.Types: _memory :: CreateContainerOpts -> Int
- Docker.Types: _memorySwap :: CreateContainerOpts -> Int
- Docker.Types: _names :: DockerContainer -> [String]
- Docker.Types: _openStdin :: CreateContainerOpts -> Bool
- Docker.Types: _parentId :: DockerImage -> Maybe String
- Docker.Types: _portSpecs :: CreateContainerOpts -> Maybe Object
- Docker.Types: _ports :: DockerContainer -> Maybe [PortMap]
- Docker.Types: _privatePort :: PortMap -> Port
- Docker.Types: _publicPort :: PortMap -> Port
- Docker.Types: _repoTags :: DockerImage -> [Tag]
- Docker.Types: _size :: DockerImage -> Int
- Docker.Types: _status :: DockerContainer -> String
- Docker.Types: _stdinOnce :: CreateContainerOpts -> Bool
- Docker.Types: _tty :: CreateContainerOpts -> Bool
- Docker.Types: _type :: PortMap -> PortType
- Docker.Types: _user :: CreateContainerOpts -> String
- Docker.Types: _virtualSize :: DockerImage -> Int
- Docker.Types: _volumes :: CreateContainerOpts -> Maybe Object
- Docker.Types: _volumesFrom :: CreateContainerOpts -> Maybe Object
- Docker.Types: _workingDir :: CreateContainerOpts -> String
- Docker.Types: apiVersion :: DockerClientOpts -> ApiVersion
- Docker.Types: attachStderr :: Lens' CreateContainerOpts Bool
- Docker.Types: attachStdin :: Lens' CreateContainerOpts Bool
- Docker.Types: attachStdout :: Lens' CreateContainerOpts Bool
- Docker.Types: baseUrl :: DockerClientOpts -> URL
- Docker.Types: class HasResourceId t_aaOh where id = (resourceId . go_aaOj) where go_aaOj _f_aaOk (ResourceId __id'_aaOl) = ((\ __id_aaOm -> ResourceId __id_aaOm) <$> (_f_aaOk __id'_aaOl))
- Docker.Types: cmd :: Lens' CreateContainerOpts [String]
- Docker.Types: command :: Lens' DockerContainer String
- Docker.Types: containerCreatedAt :: Lens' DockerContainer Int
- Docker.Types: containerId :: Lens' DockerContainer ResourceId
- Docker.Types: containerImageId :: Lens' DockerContainer ResourceId
- Docker.Types: data CreateContainerOpts
- Docker.Types: data DockerClientOpts
- Docker.Types: data DockerContainer
- Docker.Types: data DockerImage
- Docker.Types: data DockerVersion
- Docker.Types: data PortMap
- Docker.Types: data ResourceId
- Docker.Types: data StartContainerOpts
- Docker.Types: defaultCreateOpts :: CreateContainerOpts
- Docker.Types: defaultStartOpts :: StartContainerOpts
- Docker.Types: disableNetwork :: Lens' CreateContainerOpts Bool
- Docker.Types: env :: Lens' CreateContainerOpts (Maybe Object)
- Docker.Types: exposedPorts :: Lens' CreateContainerOpts (Maybe Object)
- Docker.Types: hostname :: Lens' CreateContainerOpts String
- Docker.Types: id :: HasResourceId t_aaOh => Lens' t_aaOh String
- Docker.Types: image :: Lens' CreateContainerOpts String
- Docker.Types: imageCreatedAt :: Lens' DockerImage Int
- Docker.Types: imageId :: Lens' DockerImage ResourceId
- Docker.Types: instance Eq DockerContainer
- Docker.Types: instance Eq DockerImage
- Docker.Types: instance Eq DockerVersion
- Docker.Types: instance Eq PortMap
- Docker.Types: instance Eq ResourceId
- Docker.Types: instance FromJSON DockerContainer
- Docker.Types: instance FromJSON DockerImage
- Docker.Types: instance FromJSON DockerVersion
- Docker.Types: instance FromJSON PortMap
- Docker.Types: instance HasResourceId DockerContainer
- Docker.Types: instance HasResourceId DockerImage
- Docker.Types: instance HasResourceId ResourceId
- Docker.Types: instance Show CreateContainerOpts
- Docker.Types: instance Show DockerClientOpts
- Docker.Types: instance Show DockerContainer
- Docker.Types: instance Show DockerImage
- Docker.Types: instance Show DockerVersion
- Docker.Types: instance Show PortMap
- Docker.Types: instance Show ResourceId
- Docker.Types: instance Show StartContainerOpts
- Docker.Types: instance ToJSON CreateContainerOpts
- Docker.Types: instance ToJSON DockerVersion
- Docker.Types: instance ToJSON StartContainerOpts
- Docker.Types: memory :: Lens' CreateContainerOpts Int
- Docker.Types: memorySwap :: Lens' CreateContainerOpts Int
- Docker.Types: names :: Lens' DockerContainer [String]
- Docker.Types: openStdin :: Lens' CreateContainerOpts Bool
- Docker.Types: parentId :: Lens' DockerImage (Maybe String)
- Docker.Types: portSpecs :: Lens' CreateContainerOpts (Maybe Object)
- Docker.Types: ports :: Lens' DockerContainer (Maybe [PortMap])
- Docker.Types: repoTags :: Lens' DockerImage [Tag]
- Docker.Types: resourceId :: HasResourceId t_aaOh => Lens' t_aaOh ResourceId
- Docker.Types: size :: Lens' DockerImage Int
- Docker.Types: status :: Lens' DockerContainer String
- Docker.Types: stdinOnce :: Lens' CreateContainerOpts Bool
- Docker.Types: tty :: Lens' CreateContainerOpts Bool
- Docker.Types: type ApiVersion = String
- Docker.Types: type Endpoint = String
- Docker.Types: type IP = String
- Docker.Types: type Port = Int
- Docker.Types: type PortType = String
- Docker.Types: type Tag = String
- Docker.Types: type URL = String
- Docker.Types: user :: Lens' CreateContainerOpts String
- Docker.Types: virtualSize :: Lens' DockerImage Int
- Docker.Types: volumes :: Lens' CreateContainerOpts (Maybe Object)
- Docker.Types: volumesFrom :: Lens' CreateContainerOpts (Maybe Object)
- Docker.Types: workingDir :: Lens' CreateContainerOpts String
- Docker.Utils: strip_underscore :: String -> String
+ Network.Docker: _dockerEmptyPostQuery :: Endpoint -> DockerClientOpts -> IO (Response ByteString)
+ Network.Docker: _dockerGetQuery :: Endpoint -> DockerClientOpts -> IO (Response ByteString)
+ Network.Docker: _dockerPostQuery :: ToJSON a => Endpoint -> DockerClientOpts -> a -> IO (Response ByteString)
+ Network.Docker: constructRelativeUrl :: String -> String
+ Network.Docker: constructUrl :: URL -> ApiVersion -> Endpoint -> URL
+ Network.Docker: createContainer :: DockerClientOpts -> CreateContainerOpts -> IO (Maybe Text)
+ Network.Docker: decodeResponse :: (FromJSON a, Functor f) => f (Response ByteString) -> f (Maybe a)
+ Network.Docker: defaultClientOpts :: DockerClientOpts
+ Network.Docker: emptyPost :: String
+ Network.Docker: fullUrl :: DockerClientOpts -> Endpoint -> URL
+ Network.Docker: getContainerLogs :: DockerClientOpts -> String -> IO (ByteString)
+ Network.Docker: getContainerLogsStream :: DockerClientOpts -> String -> IO ()
+ Network.Docker: getDockerContainers :: DockerClientOpts -> IO (Maybe [DockerContainer])
+ Network.Docker: getDockerImages :: DockerClientOpts -> IO (Maybe [DockerImage])
+ Network.Docker: getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)
+ Network.Docker: getOutOfResponse :: AsValue body0 => Text -> Response body0 -> Maybe Text
+ Network.Docker: getResponseStatusCode :: Response body -> Status
+ Network.Docker: killContainer :: DockerClientOpts -> String -> IO (Status)
+ Network.Docker: pauseContainer :: DockerClientOpts -> String -> IO (Status)
+ Network.Docker: restartContainer :: DockerClientOpts -> String -> IO (Status)
+ Network.Docker: startContainer :: DockerClientOpts -> String -> StartContainerOpts -> IO (Status)
+ Network.Docker: stopContainer :: DockerClientOpts -> String -> IO (Status)
+ Network.Docker: unpauseContainer :: DockerClientOpts -> String -> IO (Status)
+ Network.Docker.Options: dopts :: Options
+ Network.Docker.Types: CreateContainerOpts :: String -> String -> Int -> Int -> Bool -> Bool -> Bool -> Maybe Object -> Bool -> Bool -> Bool -> Maybe Object -> [String] -> String -> Maybe Object -> Maybe Object -> String -> Bool -> Maybe Object -> CreateContainerOpts
+ Network.Docker.Types: DockerClientOpts :: ApiVersion -> URL -> DockerClientOpts
+ Network.Docker.Types: DockerContainer :: ResourceId -> ResourceId -> String -> Int -> [String] -> String -> Maybe [PortMap] -> DockerContainer
+ Network.Docker.Types: DockerImage :: ResourceId -> Int -> Maybe String -> [Tag] -> Int -> Int -> DockerImage
+ Network.Docker.Types: DockerVersion :: String -> String -> String -> String -> String -> DockerVersion
+ Network.Docker.Types: PortMap :: IP -> Port -> Port -> PortType -> PortMap
+ Network.Docker.Types: ResourceId :: String -> ResourceId
+ Network.Docker.Types: StartContainerOpts :: [Text] -> [Text] -> [(Text, Text)] -> [(Text, [(Text, Text)])] -> Bool -> Bool -> [Text] -> [Text] -> StartContainerOpts
+ Network.Docker.Types: _Arch :: DockerVersion -> String
+ Network.Docker.Types: _Binds :: StartContainerOpts -> [Text]
+ Network.Docker.Types: _Dns :: StartContainerOpts -> [Text]
+ Network.Docker.Types: _GitCommit :: DockerVersion -> String
+ Network.Docker.Types: _GoVersion :: DockerVersion -> String
+ Network.Docker.Types: _KernelVersion :: DockerVersion -> String
+ Network.Docker.Types: _Links :: StartContainerOpts -> [Text]
+ Network.Docker.Types: _LxcConf :: StartContainerOpts -> [(Text, Text)]
+ Network.Docker.Types: _PortBindings :: StartContainerOpts -> [(Text, [(Text, Text)])]
+ Network.Docker.Types: _Privileged :: StartContainerOpts -> Bool
+ Network.Docker.Types: _PublishAllPorts :: StartContainerOpts -> Bool
+ Network.Docker.Types: _Version :: DockerVersion -> String
+ Network.Docker.Types: _VolumesFrom :: StartContainerOpts -> [Text]
+ Network.Docker.Types: _attachStderr :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _attachStdin :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _attachStdout :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _cmd :: CreateContainerOpts -> [String]
+ Network.Docker.Types: _command :: DockerContainer -> String
+ Network.Docker.Types: _containerCreatedAt :: DockerContainer -> Int
+ Network.Docker.Types: _containerId :: DockerContainer -> ResourceId
+ Network.Docker.Types: _containerImageId :: DockerContainer -> ResourceId
+ Network.Docker.Types: _disableNetwork :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _env :: CreateContainerOpts -> Maybe Object
+ Network.Docker.Types: _exposedPorts :: CreateContainerOpts -> Maybe Object
+ Network.Docker.Types: _hostname :: CreateContainerOpts -> String
+ Network.Docker.Types: _id :: ResourceId -> String
+ Network.Docker.Types: _image :: CreateContainerOpts -> String
+ Network.Docker.Types: _imageCreatedAt :: DockerImage -> Int
+ Network.Docker.Types: _imageId :: DockerImage -> ResourceId
+ Network.Docker.Types: _ip :: PortMap -> IP
+ Network.Docker.Types: _memory :: CreateContainerOpts -> Int
+ Network.Docker.Types: _memorySwap :: CreateContainerOpts -> Int
+ Network.Docker.Types: _names :: DockerContainer -> [String]
+ Network.Docker.Types: _openStdin :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _parentId :: DockerImage -> Maybe String
+ Network.Docker.Types: _portSpecs :: CreateContainerOpts -> Maybe Object
+ Network.Docker.Types: _ports :: DockerContainer -> Maybe [PortMap]
+ Network.Docker.Types: _privatePort :: PortMap -> Port
+ Network.Docker.Types: _publicPort :: PortMap -> Port
+ Network.Docker.Types: _repoTags :: DockerImage -> [Tag]
+ Network.Docker.Types: _size :: DockerImage -> Int
+ Network.Docker.Types: _status :: DockerContainer -> String
+ Network.Docker.Types: _stdinOnce :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _tty :: CreateContainerOpts -> Bool
+ Network.Docker.Types: _type :: PortMap -> PortType
+ Network.Docker.Types: _user :: CreateContainerOpts -> String
+ Network.Docker.Types: _virtualSize :: DockerImage -> Int
+ Network.Docker.Types: _volumes :: CreateContainerOpts -> Maybe Object
+ Network.Docker.Types: _volumesFrom :: CreateContainerOpts -> Maybe Object
+ Network.Docker.Types: _workingDir :: CreateContainerOpts -> String
+ Network.Docker.Types: apiVersion :: DockerClientOpts -> ApiVersion
+ Network.Docker.Types: attachStderr :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: attachStdin :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: attachStdout :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: baseUrl :: DockerClientOpts -> URL
+ Network.Docker.Types: class HasResourceId t_aaOh where id = (resourceId . go_aaOj) where go_aaOj _f_aaOk (ResourceId __id'_aaOl) = ((\ __id_aaOm -> ResourceId __id_aaOm) <$> (_f_aaOk __id'_aaOl))
+ Network.Docker.Types: cmd :: Lens' CreateContainerOpts [String]
+ Network.Docker.Types: command :: Lens' DockerContainer String
+ Network.Docker.Types: containerCreatedAt :: Lens' DockerContainer Int
+ Network.Docker.Types: containerId :: Lens' DockerContainer ResourceId
+ Network.Docker.Types: containerImageId :: Lens' DockerContainer ResourceId
+ Network.Docker.Types: data CreateContainerOpts
+ Network.Docker.Types: data DockerClientOpts
+ Network.Docker.Types: data DockerContainer
+ Network.Docker.Types: data DockerImage
+ Network.Docker.Types: data DockerVersion
+ Network.Docker.Types: data PortMap
+ Network.Docker.Types: data ResourceId
+ Network.Docker.Types: data StartContainerOpts
+ Network.Docker.Types: defaultCreateOpts :: CreateContainerOpts
+ Network.Docker.Types: defaultStartOpts :: StartContainerOpts
+ Network.Docker.Types: disableNetwork :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: env :: Lens' CreateContainerOpts (Maybe Object)
+ Network.Docker.Types: exposedPorts :: Lens' CreateContainerOpts (Maybe Object)
+ Network.Docker.Types: hostname :: Lens' CreateContainerOpts String
+ Network.Docker.Types: id :: HasResourceId t_aaOh => Lens' t_aaOh String
+ Network.Docker.Types: image :: Lens' CreateContainerOpts String
+ Network.Docker.Types: imageCreatedAt :: Lens' DockerImage Int
+ Network.Docker.Types: imageId :: Lens' DockerImage ResourceId
+ Network.Docker.Types: instance Eq DockerContainer
+ Network.Docker.Types: instance Eq DockerImage
+ Network.Docker.Types: instance Eq DockerVersion
+ Network.Docker.Types: instance Eq PortMap
+ Network.Docker.Types: instance Eq ResourceId
+ Network.Docker.Types: instance FromJSON DockerContainer
+ Network.Docker.Types: instance FromJSON DockerImage
+ Network.Docker.Types: instance FromJSON DockerVersion
+ Network.Docker.Types: instance FromJSON PortMap
+ Network.Docker.Types: instance HasResourceId DockerContainer
+ Network.Docker.Types: instance HasResourceId DockerImage
+ Network.Docker.Types: instance HasResourceId ResourceId
+ Network.Docker.Types: instance Show CreateContainerOpts
+ Network.Docker.Types: instance Show DockerClientOpts
+ Network.Docker.Types: instance Show DockerContainer
+ Network.Docker.Types: instance Show DockerImage
+ Network.Docker.Types: instance Show DockerVersion
+ Network.Docker.Types: instance Show PortMap
+ Network.Docker.Types: instance Show ResourceId
+ Network.Docker.Types: instance Show StartContainerOpts
+ Network.Docker.Types: instance ToJSON CreateContainerOpts
+ Network.Docker.Types: instance ToJSON DockerVersion
+ Network.Docker.Types: instance ToJSON StartContainerOpts
+ Network.Docker.Types: memory :: Lens' CreateContainerOpts Int
+ Network.Docker.Types: memorySwap :: Lens' CreateContainerOpts Int
+ Network.Docker.Types: names :: Lens' DockerContainer [String]
+ Network.Docker.Types: openStdin :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: parentId :: Lens' DockerImage (Maybe String)
+ Network.Docker.Types: portSpecs :: Lens' CreateContainerOpts (Maybe Object)
+ Network.Docker.Types: ports :: Lens' DockerContainer (Maybe [PortMap])
+ Network.Docker.Types: repoTags :: Lens' DockerImage [Tag]
+ Network.Docker.Types: resourceId :: HasResourceId t_aaOh => Lens' t_aaOh ResourceId
+ Network.Docker.Types: size :: Lens' DockerImage Int
+ Network.Docker.Types: status :: Lens' DockerContainer String
+ Network.Docker.Types: stdinOnce :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: tty :: Lens' CreateContainerOpts Bool
+ Network.Docker.Types: type ApiVersion = String
+ Network.Docker.Types: type Endpoint = String
+ Network.Docker.Types: type IP = String
+ Network.Docker.Types: type Port = Int
+ Network.Docker.Types: type PortType = String
+ Network.Docker.Types: type Tag = String
+ Network.Docker.Types: type URL = String
+ Network.Docker.Types: user :: Lens' CreateContainerOpts String
+ Network.Docker.Types: virtualSize :: Lens' DockerImage Int
+ Network.Docker.Types: volumes :: Lens' CreateContainerOpts (Maybe Object)
+ Network.Docker.Types: volumesFrom :: Lens' CreateContainerOpts (Maybe Object)
+ Network.Docker.Types: workingDir :: Lens' CreateContainerOpts String
+ Network.Docker.Utils: strip_underscore :: String -> String
Files
- Docker.hs +0/−92
- Docker/Options.hs +0/−16
- Docker/Types.hs +0/−234
- Docker/Utils.hs +0/−6
- Network/Docker.hs +92/−0
- Network/Docker/Options.hs +16/−0
- Network/Docker/Types.hs +234/−0
- Network/Docker/Utils.hs +6/−0
- README.md +3/−1
- docker.cabal +2/−2
− Docker.hs
@@ -1,92 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Docker where--import Control.Applicative ((<$>), (<*>))-import Control.Lens-import Data.Aeson (FromJSON, ToJSON, decode, eitherDecode,- encode)-import Data.Aeson.Lens (key, _String)-import Data.Aeson.TH-import qualified Data.ByteString.Lazy as L-import Data.Char-import qualified Data.Text as T-import Docker.Options-import Docker.Types-import Network.Wreq-import Pipes-import qualified Pipes.ByteString as PB-import qualified Pipes.HTTP as PH-import Text.Printf (printf)---defaultClientOpts :: DockerClientOpts-defaultClientOpts = DockerClientOpts- { apiVersion = "v1.12"- , baseUrl = "http://127.0.0.1:3128/"- }--constructUrl :: URL -> ApiVersion -> Endpoint -> URL-constructUrl url apiVersion endpoint = printf "%s%s%s" url apiVersion endpoint--constructRelativeUrl url = url :: String--decodeResponse r = decode <$> (^. responseBody) <$> r--getOutOfResponse k r = (^? responseBody . key k . _String) r--getResponseStatusCode r = (^. responseStatus) r--fullUrl :: DockerClientOpts -> Endpoint -> URL-fullUrl clientOpts endpoint = constructUrl (baseUrl clientOpts) (apiVersion clientOpts) endpoint--_dockerGetQuery :: Endpoint -> DockerClientOpts -> IO(Response L.ByteString)-_dockerGetQuery endpoint clientOpts = get (fullUrl clientOpts endpoint)--_dockerPostQuery :: ToJSON a => Endpoint -> DockerClientOpts -> a -> IO (Response L.ByteString)-_dockerPostQuery endpoint clientOpts postObject = post (fullUrl clientOpts endpoint) (encode postObject)--emptyPost = "" :: String-_dockerEmptyPostQuery endpoint clientOpts = post (fullUrl clientOpts endpoint) (encode emptyPost)--getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)-getDockerVersion = decodeResponse . _dockerGetQuery "/version"--getDockerContainers :: DockerClientOpts -> IO (Maybe [DockerContainer])-getDockerContainers = decodeResponse . _dockerGetQuery "/containers/json"--getDockerImages :: DockerClientOpts -> IO (Maybe [DockerImage])-getDockerImages = decodeResponse . _dockerGetQuery "/images/json"--createContainer :: DockerClientOpts -> CreateContainerOpts -> IO(Maybe T.Text)-createContainer clientOpts createOpts = getOutOfResponse "Id" <$> (_dockerPostQuery "/containers/create" clientOpts createOpts)--startContainer :: DockerClientOpts -> String -> StartContainerOpts -> IO(Status)-startContainer clientOpts containerId startOpts = (^. responseStatus) <$> _dockerPostQuery (printf "/containers/%s/start" containerId) clientOpts startOpts--stopContainer :: DockerClientOpts -> String -> IO (Status)-stopContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/stop" containerId) clientOpts--killContainer :: DockerClientOpts -> String -> IO (Status)-killContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/kill" containerId) clientOpts--restartContainer :: DockerClientOpts -> String -> IO (Status)-restartContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/restart" containerId) clientOpts--pauseContainer :: DockerClientOpts -> String -> IO (Status)-pauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/pause" containerId) clientOpts--unpauseContainer :: DockerClientOpts -> String -> IO (Status)-unpauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/unpause" containerId) clientOpts--getContainerLogsStream :: DockerClientOpts -> String -> IO ()-getContainerLogsStream clientOpts containerId = do- req <- PH.parseUrl (fullUrl clientOpts url)- let req' = req {PH.method = "GET"}- PH.withManager PH.defaultManagerSettings $ \m -> PH.withHTTP req' m $ \resp -> runEffect $ PH.responseBody resp >-> PB.stdout- where url = (printf "/containers/%s/logs?stdout=1&stderr=1&follow=1" containerId)--getContainerLogs :: DockerClientOpts -> String -> IO (L.ByteString)-getContainerLogs clientOpts containerId = (^. responseBody) <$> _dockerGetQuery url clientOpts- where url = (printf "/containers/%s/logs?stdout=1&stderr=1" containerId)-
− Docker/Options.hs
@@ -1,16 +0,0 @@-module Docker.Options where--import Data.Aeson.TH-import Docker.Utils--dopts :: Options-dopts = Options {- fieldLabelModifier = strip_underscore- , constructorTagModifier = id- , allNullaryToStringTag = True- , omitNothingFields = True- , sumEncoding = defaultTaggedObject- }---
− Docker/Types.hs
@@ -1,234 +0,0 @@-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TemplateHaskell #-}--module Docker.Types where--import Control.Applicative-import Control.Lens.TH-import Control.Lens.TH-import Data.Aeson-import Data.Aeson.TH-import Data.Bool-import qualified Data.ByteString.Lazy as BS-import Data.Default-import qualified Data.Map as Map-import qualified Data.Text as T-import Docker.Options-import GHC.Generics-import Network.Wreq.Types (Postable)---type URL = String-type ApiVersion = String-type Endpoint = String--type Tag = String-type IP = String-type Port = Int-type PortType = String--data DockerClientOpts = DockerClientOpts {- apiVersion :: ApiVersion- , baseUrl :: URL- } deriving (Show)---data ResourceId = ResourceId { _id :: String } deriving (Show, Eq)---data DockerImage = DockerImage- { _imageId :: ResourceId- , _imageCreatedAt :: Int- , _parentId :: Maybe String- , _repoTags :: [Tag]- , _size :: Int- , _virtualSize :: Int- } deriving (Show, Eq)---data DockerVersion = DockerVersion- { _Version :: String- , _GitCommit :: String- , _GoVersion :: String- , _Arch :: String- , _KernelVersion :: String- } deriving (Show, Eq)----- The JSON looks likes this:--- "Ports":[{"IP":"0.0.0.0","PrivatePort":55555,"PublicPort":55555,"Type":"tcp"}]--data PortMap = PortMap- { _ip :: IP- , _privatePort :: Port- , _publicPort :: Port- , _type :: PortType- } deriving (Show, Eq)---data DockerContainer = DockerContainer- { _containerId :: ResourceId- , _containerImageId :: ResourceId- , _command :: String- , _containerCreatedAt :: Int- , _names :: [String]- , _status :: String- , _ports :: Maybe [PortMap]- } deriving (Show, Eq)---data CreateContainerOpts = CreateContainerOpts- { _hostname :: String- , _user :: String- , _memory :: Int- , _memorySwap :: Int- , _attachStdin :: Bool- , _attachStdout :: Bool- , _attachStderr :: Bool- , _portSpecs :: Maybe Object- , _tty :: Bool- , _openStdin :: Bool- , _stdinOnce :: Bool- , _env :: Maybe Object- , _cmd :: [String]- , _image :: String- , _volumes :: Maybe Object- , _volumesFrom :: Maybe Object- , _workingDir :: String- , _disableNetwork :: Bool- , _exposedPorts :: Maybe Object- } deriving (Show)--defaultCreateOpts = CreateContainerOpts {- _hostname = ""- , _user = ""- , _memory = 0- , _memorySwap = 0- , _attachStdin = False- , _attachStdout = False- , _attachStderr = False- , _portSpecs = Nothing- , _tty = False- , _openStdin = False- , _stdinOnce = False- , _env = Nothing- , _cmd = []- , _image = "debian"- , _volumes = Nothing- , _volumesFrom = Nothing- , _workingDir = ""- , _disableNetwork = False- , _exposedPorts = Nothing- }--instance ToJSON CreateContainerOpts where- toJSON (CreateContainerOpts {..}) = object- [ "Hostname" .= _hostname- , "User" .= _user- , "Memory" .= _memory- , "MemorySwap" .= _memorySwap- , "AttachStdin" .= _attachStdin- , "AttachStdout" .= _attachStdout- , "AttachStderr" .= _attachStderr- , "PortSpecs" .= _portSpecs- , "Tty" .= _tty- , "OpenStdin" .= _openStdin- , "StdinOnce" .= _stdinOnce- , "Env" .= _env- , "Cmd" .= _cmd- , "Image" .= _image- , "Volumes" .= _volumes- , "VolumesFrom" .= _volumesFrom- , "WrokingDir" .= _workingDir- , "DisableNetwork" .= _disableNetwork- , "ExposedPorts" .= _exposedPorts- ]---- data CreateContainerResponse = CreateContainerResponse--- { _createdContainerId :: String--- , _warnings :: Maybe [T.Text]--- } deriving (Show)--data StartContainerOpts = StartContainerOpts- { _Binds :: [T.Text]- , _Links :: [T.Text]- , _LxcConf :: [(T.Text, T.Text)]- , _PortBindings :: [(T.Text, [(T.Text, T.Text)])]- , _PublishAllPorts :: Bool- , _Privileged :: Bool- , _Dns :: [T.Text]- , _VolumesFrom :: [T.Text]- } deriving (Show)--defaultStartOpts = StartContainerOpts- { _Binds = []- , _Links = []- , _LxcConf = []- , _PortBindings = []- , _PublishAllPorts = False- , _Privileged = False- , _Dns = []- , _VolumesFrom = []- }--instance ToJSON StartContainerOpts where- toJSON (StartContainerOpts {..}) = object- [ "Binds" .= _Binds- , "Links" .= _Links- , "LxcConf" .= _LxcConf- , "PortBindings" .= _PortBindings- , "PublishAllPorts" .= _PublishAllPorts- , "Privileged" .= _Privileged- , "Dns" .= _Dns- , "VolumesFrom" .= _VolumesFrom- ]--makeClassy ''ResourceId---- makeLenses ''CreateContainerResponse-makeLenses ''DockerImage-makeLenses ''DockerContainer-makeLenses ''CreateContainerOpts--instance HasResourceId DockerImage where- resourceId = imageId--instance FromJSON DockerImage where- parseJSON (Object v) =- DockerImage <$> ResourceId <$> (v .: "Id")- <*> (v .: "Created")- <*> (v .:? "ParentId")- <*> (v .: "RepoTags")- <*> (v .: "Size")- <*> (v .: "VirtualSize")--instance FromJSON PortMap where- parseJSON (Object v) =- PortMap <$> (v .: "IP")- <*> (v .: "PrivatePort")- <*> (v .: "PublicPort")- <*> (v .: "Type")--instance HasResourceId DockerContainer where- resourceId = containerId--instance FromJSON DockerContainer where- parseJSON (Object v) =- DockerContainer <$> (ResourceId <$> (v .: "Id"))- <*> (ResourceId <$> (v .: "Id"))- <*> (v .: "Command")- <*> (v .: "Created")- <*> (v .: "Names")- <*> (v .: "Status")- <*> (v .:? "Ports")---- instance FromJSON CreateContainerResponse where--- parseJSON (Object v) =--- CreateContainerResponse <$> (v .: "Id")--- <*> (v .:? "warnings")--$(deriveJSON dopts ''DockerVersion)-
− Docker/Utils.hs
@@ -1,6 +0,0 @@-module Docker.Utils where--import Data.Char--strip_underscore :: String -> String-strip_underscore (_:xs) = xs
+ Network/Docker.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE OverloadedStrings #-}++module Network.Docker where++import Control.Applicative ((<$>), (<*>))+import Control.Lens+import Data.Aeson (FromJSON, ToJSON, decode, eitherDecode,+ encode)+import Data.Aeson.Lens (key, _String)+import Data.Aeson.TH+import qualified Data.ByteString.Lazy as L+import Data.Char+import qualified Data.Text as T+import Network.Docker.Options+import Network.Docker.Types+import Network.Wreq+import Pipes+import qualified Pipes.ByteString as PB+import qualified Pipes.HTTP as PH+import Text.Printf (printf)+++defaultClientOpts :: DockerClientOpts+defaultClientOpts = DockerClientOpts+ { apiVersion = "v1.12"+ , baseUrl = "http://127.0.0.1:3128/"+ }++constructUrl :: URL -> ApiVersion -> Endpoint -> URL+constructUrl url apiVersion endpoint = printf "%s%s%s" url apiVersion endpoint++constructRelativeUrl url = url :: String++decodeResponse r = decode <$> (^. responseBody) <$> r++getOutOfResponse k r = (^? responseBody . key k . _String) r++getResponseStatusCode r = (^. responseStatus) r++fullUrl :: DockerClientOpts -> Endpoint -> URL+fullUrl clientOpts endpoint = constructUrl (baseUrl clientOpts) (apiVersion clientOpts) endpoint++_dockerGetQuery :: Endpoint -> DockerClientOpts -> IO(Response L.ByteString)+_dockerGetQuery endpoint clientOpts = get (fullUrl clientOpts endpoint)++_dockerPostQuery :: ToJSON a => Endpoint -> DockerClientOpts -> a -> IO (Response L.ByteString)+_dockerPostQuery endpoint clientOpts postObject = post (fullUrl clientOpts endpoint) (encode postObject)++emptyPost = "" :: String+_dockerEmptyPostQuery endpoint clientOpts = post (fullUrl clientOpts endpoint) (encode emptyPost)++getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)+getDockerVersion = decodeResponse . _dockerGetQuery "/version"++getDockerContainers :: DockerClientOpts -> IO (Maybe [DockerContainer])+getDockerContainers = decodeResponse . _dockerGetQuery "/containers/json"++getDockerImages :: DockerClientOpts -> IO (Maybe [DockerImage])+getDockerImages = decodeResponse . _dockerGetQuery "/images/json"++createContainer :: DockerClientOpts -> CreateContainerOpts -> IO(Maybe T.Text)+createContainer clientOpts createOpts = getOutOfResponse "Id" <$> (_dockerPostQuery "/containers/create" clientOpts createOpts)++startContainer :: DockerClientOpts -> String -> StartContainerOpts -> IO(Status)+startContainer clientOpts containerId startOpts = (^. responseStatus) <$> _dockerPostQuery (printf "/containers/%s/start" containerId) clientOpts startOpts++stopContainer :: DockerClientOpts -> String -> IO (Status)+stopContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/stop" containerId) clientOpts++killContainer :: DockerClientOpts -> String -> IO (Status)+killContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/kill" containerId) clientOpts++restartContainer :: DockerClientOpts -> String -> IO (Status)+restartContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/restart" containerId) clientOpts++pauseContainer :: DockerClientOpts -> String -> IO (Status)+pauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/pause" containerId) clientOpts++unpauseContainer :: DockerClientOpts -> String -> IO (Status)+unpauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/unpause" containerId) clientOpts++getContainerLogsStream :: DockerClientOpts -> String -> IO ()+getContainerLogsStream clientOpts containerId = do+ req <- PH.parseUrl (fullUrl clientOpts url)+ let req' = req {PH.method = "GET"}+ PH.withManager PH.defaultManagerSettings $ \m -> PH.withHTTP req' m $ \resp -> runEffect $ PH.responseBody resp >-> PB.stdout+ where url = (printf "/containers/%s/logs?stdout=1&stderr=1&follow=1" containerId)++getContainerLogs :: DockerClientOpts -> String -> IO (L.ByteString)+getContainerLogs clientOpts containerId = (^. responseBody) <$> _dockerGetQuery url clientOpts+ where url = (printf "/containers/%s/logs?stdout=1&stderr=1" containerId)+
+ Network/Docker/Options.hs view
@@ -0,0 +1,16 @@+module Network.Docker.Options where++import Data.Aeson.TH+import Network.Docker.Utils++dopts :: Options+dopts = Options {+ fieldLabelModifier = strip_underscore+ , constructorTagModifier = id+ , allNullaryToStringTag = True+ , omitNothingFields = True+ , sumEncoding = defaultTaggedObject+ }+++
+ Network/Docker/Types.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TemplateHaskell #-}++module Network.Docker.Types where++import Control.Applicative+import Control.Lens.TH+import Control.Lens.TH+import Data.Aeson+import Data.Aeson.TH+import Data.Bool+import qualified Data.ByteString.Lazy as BS+import Data.Default+import qualified Data.Map as Map+import qualified Data.Text as T+import GHC.Generics+import Network.Docker.Options+import Network.Wreq.Types (Postable)+++type URL = String+type ApiVersion = String+type Endpoint = String++type Tag = String+type IP = String+type Port = Int+type PortType = String++data DockerClientOpts = DockerClientOpts {+ apiVersion :: ApiVersion+ , baseUrl :: URL+ } deriving (Show)+++data ResourceId = ResourceId { _id :: String } deriving (Show, Eq)+++data DockerImage = DockerImage+ { _imageId :: ResourceId+ , _imageCreatedAt :: Int+ , _parentId :: Maybe String+ , _repoTags :: [Tag]+ , _size :: Int+ , _virtualSize :: Int+ } deriving (Show, Eq)+++data DockerVersion = DockerVersion+ { _Version :: String+ , _GitCommit :: String+ , _GoVersion :: String+ , _Arch :: String+ , _KernelVersion :: String+ } deriving (Show, Eq)+++-- The JSON looks likes this:+-- "Ports":[{"IP":"0.0.0.0","PrivatePort":55555,"PublicPort":55555,"Type":"tcp"}]++data PortMap = PortMap+ { _ip :: IP+ , _privatePort :: Port+ , _publicPort :: Port+ , _type :: PortType+ } deriving (Show, Eq)+++data DockerContainer = DockerContainer+ { _containerId :: ResourceId+ , _containerImageId :: ResourceId+ , _command :: String+ , _containerCreatedAt :: Int+ , _names :: [String]+ , _status :: String+ , _ports :: Maybe [PortMap]+ } deriving (Show, Eq)+++data CreateContainerOpts = CreateContainerOpts+ { _hostname :: String+ , _user :: String+ , _memory :: Int+ , _memorySwap :: Int+ , _attachStdin :: Bool+ , _attachStdout :: Bool+ , _attachStderr :: Bool+ , _portSpecs :: Maybe Object+ , _tty :: Bool+ , _openStdin :: Bool+ , _stdinOnce :: Bool+ , _env :: Maybe Object+ , _cmd :: [String]+ , _image :: String+ , _volumes :: Maybe Object+ , _volumesFrom :: Maybe Object+ , _workingDir :: String+ , _disableNetwork :: Bool+ , _exposedPorts :: Maybe Object+ } deriving (Show)++defaultCreateOpts = CreateContainerOpts {+ _hostname = ""+ , _user = ""+ , _memory = 0+ , _memorySwap = 0+ , _attachStdin = False+ , _attachStdout = False+ , _attachStderr = False+ , _portSpecs = Nothing+ , _tty = False+ , _openStdin = False+ , _stdinOnce = False+ , _env = Nothing+ , _cmd = []+ , _image = "debian"+ , _volumes = Nothing+ , _volumesFrom = Nothing+ , _workingDir = ""+ , _disableNetwork = False+ , _exposedPorts = Nothing+ }++instance ToJSON CreateContainerOpts where+ toJSON (CreateContainerOpts {..}) = object+ [ "Hostname" .= _hostname+ , "User" .= _user+ , "Memory" .= _memory+ , "MemorySwap" .= _memorySwap+ , "AttachStdin" .= _attachStdin+ , "AttachStdout" .= _attachStdout+ , "AttachStderr" .= _attachStderr+ , "PortSpecs" .= _portSpecs+ , "Tty" .= _tty+ , "OpenStdin" .= _openStdin+ , "StdinOnce" .= _stdinOnce+ , "Env" .= _env+ , "Cmd" .= _cmd+ , "Image" .= _image+ , "Volumes" .= _volumes+ , "VolumesFrom" .= _volumesFrom+ , "WrokingDir" .= _workingDir+ , "DisableNetwork" .= _disableNetwork+ , "ExposedPorts" .= _exposedPorts+ ]++-- data CreateContainerResponse = CreateContainerResponse+-- { _createdContainerId :: String+-- , _warnings :: Maybe [T.Text]+-- } deriving (Show)++data StartContainerOpts = StartContainerOpts+ { _Binds :: [T.Text]+ , _Links :: [T.Text]+ , _LxcConf :: [(T.Text, T.Text)]+ , _PortBindings :: [(T.Text, [(T.Text, T.Text)])]+ , _PublishAllPorts :: Bool+ , _Privileged :: Bool+ , _Dns :: [T.Text]+ , _VolumesFrom :: [T.Text]+ } deriving (Show)++defaultStartOpts = StartContainerOpts+ { _Binds = []+ , _Links = []+ , _LxcConf = []+ , _PortBindings = []+ , _PublishAllPorts = False+ , _Privileged = False+ , _Dns = []+ , _VolumesFrom = []+ }++instance ToJSON StartContainerOpts where+ toJSON (StartContainerOpts {..}) = object+ [ "Binds" .= _Binds+ , "Links" .= _Links+ , "LxcConf" .= _LxcConf+ , "PortBindings" .= _PortBindings+ , "PublishAllPorts" .= _PublishAllPorts+ , "Privileged" .= _Privileged+ , "Dns" .= _Dns+ , "VolumesFrom" .= _VolumesFrom+ ]++makeClassy ''ResourceId++-- makeLenses ''CreateContainerResponse+makeLenses ''DockerImage+makeLenses ''DockerContainer+makeLenses ''CreateContainerOpts++instance HasResourceId DockerImage where+ resourceId = imageId++instance FromJSON DockerImage where+ parseJSON (Object v) =+ DockerImage <$> ResourceId <$> (v .: "Id")+ <*> (v .: "Created")+ <*> (v .:? "ParentId")+ <*> (v .: "RepoTags")+ <*> (v .: "Size")+ <*> (v .: "VirtualSize")++instance FromJSON PortMap where+ parseJSON (Object v) =+ PortMap <$> (v .: "IP")+ <*> (v .: "PrivatePort")+ <*> (v .: "PublicPort")+ <*> (v .: "Type")++instance HasResourceId DockerContainer where+ resourceId = containerId++instance FromJSON DockerContainer where+ parseJSON (Object v) =+ DockerContainer <$> (ResourceId <$> (v .: "Id"))+ <*> (ResourceId <$> (v .: "Id"))+ <*> (v .: "Command")+ <*> (v .: "Created")+ <*> (v .: "Names")+ <*> (v .: "Status")+ <*> (v .:? "Ports")++-- instance FromJSON CreateContainerResponse where+-- parseJSON (Object v) =+-- CreateContainerResponse <$> (v .: "Id")+-- <*> (v .:? "warnings")++$(deriveJSON dopts ''DockerVersion)+
+ Network/Docker/Utils.hs view
@@ -0,0 +1,6 @@+module Network.Docker.Utils where++import Data.Char++strip_underscore :: String -> String+strip_underscore (_:xs) = xs
README.md view
@@ -1,1 +1,3 @@-playing around with haskell - don't use will be rebasing/force pushing alot+# Docker Remote API wrapper for Haskell++## Work in progress
docker.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: docker-version: 0.1.0.0+version: 0.1.0.1 synopsis: Haskell wrapper for Docker Remote API -- description: homepage: https://github.com/denibertovic/docker-hs@@ -18,7 +18,7 @@ stability: experimental library- exposed-modules: Docker, Docker.Options, Docker.Types, Docker.Utils+ exposed-modules: Network.Docker, Network.Docker.Options, Network.Docker.Types, Network.Docker.Utils -- other-modules: other-extensions: OverloadedStrings, DeriveFunctor, FlexibleContexts, TemplateHaskell build-depends: base >=4.7 && <4.8, lens >=4.2 && <4.3, aeson >=0.7 && <0.8, bytestring >=0.10 && <0.11, text >=1.1 && <1.2, wreq >=0.1 && <0.2, containers >=0.5 && <0.6, data-default >= 0.5.3, network-uri >= 2.6.0.1, pipes-http >= 1.0.0, pipes >= 4.1.2, pipes-text >= 0.0.0.12, pipes-bytestring >= 2.1.0