@@ -571,7 +571,7 @@ defaultHostConfig = HostConfig {
571 , dnsSearch=[]
571 , dnsSearch=[]
572 , extraHosts=[]
572 , extraHosts=[]
573 , ipcMode=Nothing
573 , ipcMode=Nothing
574− , links=Nothing
574+ , links=[]
575 , oomScoreAdj=Nothing
575 , oomScoreAdj=Nothing
576 , privileged=False
576 , privileged=False
577 , publishAllPorts=False
577 , publishAllPorts=False
@@ -933,7 +933,7 @@ data HostConfig = HostConfig
933 , extraHosts :: [Text]
933 , extraHosts :: [Text]
934 -- , groupAdd :: [Integer] -- 1.24: Missing from inspecting container details... Going to omit for now.
934 -- , groupAdd :: [Integer] -- 1.24: Missing from inspecting container details... Going to omit for now.
935 , ipcMode :: Maybe Text -- 1.24: Only in inspect, not create
935 , ipcMode :: Maybe Text -- 1.24: Only in inspect, not create
936− , links :: Maybe [Link] -- Note: Expand JSON instances? Null is []?
936+ , links :: [Link]
937 , oomScoreAdj :: Maybe Integer
937 , oomScoreAdj :: Maybe Integer
938 -- , pidMode :: Text -- 1.24: Don't see pidMode, just pidsLimit
938 -- , pidMode :: Text -- 1.24: Don't see pidMode, just pidsLimit
939 , privileged :: Bool
939 , privileged :: Bool
@@ -948,35 +948,57 @@ data HostConfig = HostConfig
948 } deriving (Eq, Show, Generic)
948 } deriving (Eq, Show, Generic)
950instance FromJSON HostConfig where
950instance FromJSON HostConfig where
951− parseJSON v@(JSON.Object o) = HostConfig <$>
951+ parseJSON v@(JSON.Object o) = HostConfig
952− <*>
952+ <$> o .: "Binds"
953+ <*> o .: "ContainerIDFile"
954+ <*> o .: "LogConfig"
955+ <*> o .: "NetworkMode"
956+ <*> o .: "PortBindings"
957+ <*> o .: "RestartPolicy"
958+ <*> o .: "VolumeDriver"
959+ <*> o .: "VolumesFrom"
963+ <*> o .: "DnsOptions"
964+ <*> o .: "DnsSearch"
965+ <*> o .: "ExtraHosts"
967+ <*> o .:? "Links" .!= []
968+ <*> o .: "OomScoreAdj"
969+ <*> o .: "Privileged"
970+ <*> o .: "PublishAllPorts"
971+ <*> o .: "ReadonlyRootfs"
972+ <*> o .: "SecurityOpt"
953 <*> parseJSON v
974 <*> parseJSON v
975+ parseJSON _ = fail "HostConfig is not an object."
955instance ToJSON HostConfig where
977instance ToJSON HostConfig where
956 toJSON HostConfig{..} =
978 toJSON HostConfig{..} =
957 let arr = [
979 let arr = [
958− "binds" .= binds
980+ "Binds" .= binds
959− , "containerIDFile" .= containerIDFile
981+ , "ContainerIDFile" .= containerIDFile
960− , "logConfig" .= logConfig
982+ , "LogConfig" .= logConfig
961− , "networkMode" .= networkMode
983+ , "NetworkMode" .= networkMode
962− , "portBindings" .= portBindings
984+ , "PortBindings" .= portBindings
963− , "restartPolicy" .= restartPolicy
985+ , "RestartPolicy" .= restartPolicy
964− , "volumeDriver" .= volumeDriver
986+ , "VolumeDriver" .= volumeDriver
965− , "volumesFrom" .= volumesFrom
987+ , "VolumesFrom" .= volumesFrom
966− , "capAdd" .= capAdd
988+ , "CapAdd" .= capAdd
967− , "capDrop" .= capDrop
989+ , "CapDrop" .= capDrop
968− , "dns" .= dns
990+ , "Dns" .= dns
969− , "dnsOptions" .= dnsOptions
991+ , "DnsOptions" .= dnsOptions
970− , "dnsSearch" .= dnsSearch
992+ , "DnsSearch" .= dnsSearch
971− , "extraHosts" .= extraHosts
993+ , "ExtraHosts" .= extraHosts
972− , "ipcMode" .= ipcMode
994+ , "IpcMode" .= ipcMode
973− , "links" .= links
995+ , "Links" .= links
974− , "oomScoreAdj" .= oomScoreAdj
996+ , "OomScoreAdj" .= oomScoreAdj
975− , "privileged" .= privileged
997+ , "Privileged" .= privileged
976− , "publishAllPorts" .= publishAllPorts
998+ , "PublishAllPorts" .= publishAllPorts
977− , "readonlyRootfs" .= readonlyRootfs
999+ , "ReadonlyRootfs" .= readonlyRootfs
978− , "securityOpt" .= securityOpt
1000+ , "SecurityOpt" .= securityOpt
979− , "shmSize" .= shmSize
1001+ , "ShmSize" .= shmSize
982 object $ arr <> ( resourcesArr resources)
1004 object $ arr <> ( resourcesArr resources)