@@ -19,9 +19,9 @@ module Docker.Client.Api (
1919 -- * Images
2020 , listImages
2121 , buildImageFromDockerfile
22+ , pullImage
2223 -- * Other
2324 , getDockerVersion
24− , pullImage
2525 ) where
2626
2727import Control.Monad.Catch (MonadMask (..))
@@ -164,14 +164,30 @@ inspectContainer cid = requestHelper GET (InspectContainerEndpoint cid) >>= pars
164164getContainerLogs :: forall m. (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> DockerT m (Either DockerError BSL.ByteString)
165165getContainerLogs logopts cid = requestHelper GET (ContainerLogsEndpoint logopts False cid)
166166
167−-- | Continuosly gets the container's logs as a stream. Uses conduit.
167+{-| Continuously gets the container's logs as a stream. Uses conduit.
168+
169+__Example__:
170+
171+@
172+>>> import Docker.Client
173+>>> import Data.Maybe
174+>>> import Conduit
175+>>> h <- defaultHttpHanlder
176+>>> let cid = fromJust $ toContainerID "fee86e1d522b"
177+>>> runDockerT (defaultClientOpts, h) $ getContainerLogsStream defaultLogOpts cid stdoutC
178+@
179+
180+-}
168181getContainerLogsStream :: forall m b . (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> Sink BS.ByteString m b -> DockerT m (Either DockerError b)
169182getContainerLogsStream logopts cid = requestHelper' GET (ContainerLogsEndpoint logopts True cid)
170183-- JP: Should the second (follow) argument be True? XXX
171184
172185-- | Build an Image from a Dockerfile
186+--
173187-- TODO: Add X-Registry-Config
188+--
174189-- TODO: Add support for remote URLs to a Dockerfile
190+--
175191-- TODO: Clean up temp tar.gz file after the image is built
176192buildImageFromDockerfile :: forall m. (MonadIO m, MonadMask m) => BuildOpts -> FilePath -> DockerT m (Either DockerError ())
177193buildImageFromDockerfile opts base = do
@@ -181,8 +197,10 @@ buildImageFromDockerfile opts base = do
181197 Right c -> requestUnit POST (BuildImageEndpoint opts c)
182198
183199-- | Pulls an image from Docker Hub (by default).
200+--
184201-- TODO: Add support for X-Registry-Auth and pulling from private docker
185202-- registries.
203+--
186204-- TODO: Implement importImage function that uses he same
187205-- CreateImageEndpoint but rather than pulling from docker hub it imports
188206-- the image from a tarball or a URL.