! sj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef g h i Safelanguage-dockerRemove new line escapes and join escaped lines together on one line to simplify parsing later on. Escapes are replaced with line breaks to not alter the line numbers.None "4=?HMVd@language-docker P with additional location information required for creating good check messages language-docker%All commands available in DockerfilesJlanguage-dockerType of the Dockerfile ASTj   !"&%#$')(*,+-.10/23765489:;<=>@?ACBDEFGHIJKLQPONMRSTUVWXYZ]\[^`_abcdefghijkmljjkmlghidefabc^`_Z]\[WXYVURSTKLQPONMJGHIDEFACB>@?;<=89:237654-.10/*,+')( !"&%#$   None "#$+=>?`dhlanguage-dockerPretty print a J to a jlanguage-dockerPretty print a  to a kNone"#2!llanguage-docker+End parsing signaling a conversion error .language-dockerNReads the standard input until the end and parses the contents as a Dockerfile None4"None  ">@AdhV language-docker"The type of free monad EDSL blocks language-docker The type of Identity based EDSL blocks'language-docker'Runs the Dockerfile EDSL and returns a  Dockerfile$ you can pretty print or manipulate(language-docker'runs the Dockerfile EDSL and returns a    using  import Language.Docker main :: IO () main = print $ toDockerfileText $ do from (tagged "fpco/stack-build" "lts-6.9") add ["."] "applanguage-docker" workdir "appWlanguage-docker" run "stack build --test --only-dependencies" cmd "stack test" )language-dockerEWrites the dockerfile to the given file path after pretty-printing it import Language.Docker main :: IO () main = writeDockerFile "build.Dockerfile" $ toDockerfile $ do from (tagged "fpco/stack-build" "lts-6.9") add ["."] "applanguage-docker" workdir "appWlanguage-docker" run "stack build --test --only-dependencies" cmd "stack test" *language-dockerCPrints the dockerfile to stdout. Mainly used for debugging purposes import Language.Docker main :: IO () main = putDockerfileStr $ do from (tagged "fpco/stack-build" "lts-6.9") add ["."] "applanguage-docker" workdir "appWlanguage-docker" run "stack build --test --only-dependencies" cmd "stack test" +language-docker6Use a docker image in a FROM instruction without a tag)The following two examples are equivalent #from $ untagged "fpco/stack-build" 0Is equivalent to, when having OverloadedStrings: from "fpco/stack-build" ,language-docker_Use a specific tag for a docker image. This function is meant to be used as an infix operator. from $ "fpco/stack-build" , "lts-10.3" -language-dockereAdds a digest checksum so a FROM instruction This function is meant to be used as an infix operator. from $ "fpco/stack-build" - "sha256:abcdef123" .language-dockernAlias a FROM instruction to be used as a build stage. This function is meant to be used as an infix operator. from $ "fpco/stack-build" . "builder" /language-docker2Create a RUN instruction with the given arguments. run "apt-get install wget" 0language-docker:Create an ENTRYPOINT instruction with the given arguments.  entrypoint "usrlocalbinprogram --some-flag" 1language-docker2Create a CMD instruction with the given arguments. cmd "my-program --some-flag" 2language-dockerSCreate a COPY instruction. This function is meant to be used with the compinators 9, 7 and 8 copy $ ["foo.js", "bar.js"] 9 "." copy $ ["some_file"] 9 "somepath" 7 "builder" 3language-dockerZCreate a COPY instruction from a given build stage. This is a shorthand version of using 2 with combinators. 1copyFromStage "builder" ["foo.js", "bar.js"] "." 4language-dockerCreate an ADD instruction. This is often used as a shorthand version of copy when no extra options are needed. Currently there is no way to pass extra options to ADD, so you are encouraged to use 2 instead. add ["foo.js", "bar.js"] "." 5language-docker:Converts a NonEmpty list of strings to a NonEmpty list of GThis is a convenience function when you need to pass a non-static list of strings that you build somewhere as an argument for 2 or 4 6someFiles <- glob "*.js" copy $ (toSources someFiles) 9 "." 6language-dockerConverts a Text into a D[This is a convenience function when you need to pass a string variable as an argument for 2 or 4 Jlet destination = buildSomePath pwd add ["foo.js"] (toTarget destination) 7language-docker.Adds the --from= option to a COPY instruction.7This function is meant to be used as an infix operator: copy $ ["foo.js"] 9 "." 7 "builder" 8language-docker/Adds the --chown= option to a COPY instruction.7This function is meant to be used as an infix operator: copy $ ["foo.js"] 9 "." 8 "www-data:www-data" 9language-docker?Usedto join source paths with atarget path as an arguments for 27This function is meant to be used as an infix operator: copy $ ["foo.js"] 9 "." 8 Flanguage-dockerONBUILD Dockerfile instruction3Each nested instruction gets emitted as a separate ONBUILD block 'v $ do from "node" run "apt-get update" onBuild $ do run "echo more-stuff" run "echo here" Glanguage-docker A version of ' which allows IO actionsHlanguage-docker A version of ( which allows IO actionsIlanguage-docker!Just runs the EDSL's writer monadJlanguage-docker9Runs the EDSL's writer monad and pretty-prints the resultB      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJB      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJNonej Nonenflanguage-docker1Quasiquoter for embedding dockerfiles on the EDSL  putStr $ 'y $ do from "node" run "apt-get update" [edockerfile| RUN apt-get update CMD node something.js |] fghifghiNoneno   !$#%&"'*+,-./01234567>?@ABCDEFGHIJKLMNOPQRSTUVWabcdefghijklm    &'()*+,-./0123456789:;<=>?@ABCDFGHIJfhJ('*)HGIJ ,+-.42397856/1@ABCD:;<=>?0F f  h  KLMNOPQGHIDEFABC>?@234567-./01*+, !$#%&"jklmghiRSTdefabcWV' U & Safesmnopqrstu !"#$%&'()*+,-./01123456789::;<<=>?@@ABCDEEFGGHIIJKKLMMNOOPQRRSTUVWXXYZ[\\]^^_`abcddeffghhijjklmnopqrstuvwxyz{|}~< @%&'(*+,.-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST U V W XYZ[\]^_ ` a b c d e f gh,language-docker-8.0.2-KcLH5Rb2j8D7EtxIy6c51jLanguage.DockerLanguage.Docker.NormalizeLanguage.Docker.SyntaxLanguage.Docker.PrettyPrintLanguage.Docker.ParserLanguage.Docker.EDSL.TypesLanguage.Docker.EDSLLanguage.Docker.Syntax.LiftLanguage.Docker.EDSL.Quasi Data.TextLazy PrettyPrintPaths_language_dockerbaseControl.Monad.IO.ClassliftIO'megaparsec-7.0.4-9ALYGrjYOOC9k3jnVKNZ4mText.Megaparsec.ErrorparseErrorPrettyerrorBundlePrettynormalizeEscapedLinesInstructionPos$sel:instruction:InstructionPos$sel:sourcename:InstructionPos$sel:lineNumber:InstructionPos LinenumberFilename InstructionFromAddUserLabel StopsignalCopyRunCmdShellWorkdirExposeVolume Entrypoint MaintainerEnvArg HealthcheckCommentOnBuildPairs CheckArgs$sel:checkCommand:CheckArgs$sel:interval:CheckArgs$sel:timeout:CheckArgs$sel:startPeriod:CheckArgs$sel:retries:CheckArgs Arguments ArgumentsText ArgumentsListCheckNoCheckAddArgs$sel:sourcePaths:AddArgs$sel:targetPath:AddArgs$sel:chownFlag:AddArgsCopyArgs$sel:sourcePaths:CopyArgs$sel:targetPath:CopyArgs$sel:chownFlag:CopyArgs$sel:sourceFlag:CopyArgsRetries$sel:times:RetriesDuration$sel:durationTime:Duration CopySourceNoSourceChownNoChown TargetPath$sel:unTargetPath:TargetPath SourcePath$sel:unSourcePath:SourcePath Dockerfile BaseImage$sel:image:BaseImage$sel:tag:BaseImage$sel:digest:BaseImage$sel:alias:BaseImage$sel:platform:BaseImage ImageAlias$sel:unImageAlias:ImageAliasPlatform DirectoryPorts$sel:unPorts:PortsPortPortStr PortRangeProtocolTCPUDPDigest$sel:unDigest:DigestTag$sel:unTag:TagRegistry$sel:unRegistry:RegistryImage$sel:registryName:Image$sel:imageName:Image$fIsStringImage $fIsListPorts$fIsStringChown$fIsStringCopySource$fIsListArguments$fIsStringArguments$fShowRegistry $fEqRegistry $fOrdRegistry$fIsStringRegistry $fShowImage $fEqImage $fOrdImage $fShowTag$fEqTag$fOrdTag $fIsStringTag $fShowDigest $fEqDigest $fOrdDigest$fIsStringDigest$fShowProtocol $fEqProtocol $fOrdProtocol $fShowPort$fEqPort $fOrdPort $fShowPorts $fEqPorts $fOrdPorts$fShowImageAlias$fEqImageAlias$fOrdImageAlias$fIsStringImageAlias $fEqBaseImage$fOrdBaseImage$fShowBaseImage$fShowSourcePath$fEqSourcePath$fOrdSourcePath$fIsStringSourcePath$fShowTargetPath$fEqTargetPath$fOrdTargetPath$fIsStringTargetPath $fShowChown $fEqChown $fOrdChown$fShowCopySource$fEqCopySource$fOrdCopySource$fShowDuration $fEqDuration $fOrdDuration $fNumDuration $fShowRetries $fEqRetries $fOrdRetries $fNumRetries$fShowCopyArgs $fEqCopyArgs $fOrdCopyArgs $fShowAddArgs $fEqAddArgs $fOrdAddArgs$fShowArguments $fEqArguments$fOrdArguments$fFunctorArguments$fShowCheckArgs $fEqCheckArgs$fOrdCheckArgs$fFunctorCheckArgs $fShowCheck $fEqCheck $fOrdCheck$fFunctorCheck$fEqInstruction$fOrdInstruction$fShowInstruction$fFunctorInstruction$fEqInstructionPos$fOrdInstructionPos$fShowInstructionPos$fFunctorInstructionPos EscapeAccum$sel:buffer:EscapeAccum$sel:count:EscapeAccum$sel:escaping:EscapeAccum prettyPrintprettyPrintDockerfileprettyPrintInstructionPosprettyPrintImageprettyPrintBaseImageprettyPrintPairsprettyPrintPairprettyPrintArgumentsprettyPrintJSON doubleQoute escapeQuotesprettyPrintPortprettyPrintFileListprettyPrintChownprettyPrintCopySourceprettyPrintDurationprettyPrintRetriesprettyPrintInstructionspaceCat$fPrettyArgumentsErrorParserDockerfileErrorDuplicateFlagErrorNoValueFlagErrorInvalidFlagError FileListError QuoteError parseText parseFile parseStdin#$fShowErrorComponentDockerfileError$fEqDockerfileError$fDataDockerfileError$fOrdDockerfileError$fReadDockerfileError$fShowDockerfileError EInstruction StopSignalRunArgsCmdArgsEntrypointArgs OnBuildRawEmbed EBaseImage$fIsStringEBaseImage$fShowEBaseImage$fEqEBaseImage$fOrdEBaseImage$fFunctorEInstructionEInstructionTM EInstructionM EDockerfileTM EDockerfileMfromaddArgsuserlabel stopSignalcopyArgsrunArgscmdArgsshellworkdirexposevolumeentrypointArgs maintainerenvargcomment healthcheck onBuildRawembedrunDockerWriterrunDockerWriterIOrunDefrunDef2runDinstructionPos toDockerfiletoDockerfileTextwriteDockerFileputDockerfileStruntaggedtaggeddigestedaliasedrun entrypointcmdcopy copyFromStageadd toSourcestoTarget fromStageownedBytoportstcpPortudpPort variablePort portRange udpPortRangecheckintervaltimeout startPeriodretriesnoCheckonBuildtoDockerfileIOtoDockerfileTextIOrunDockerfileIOrunDockerfileTextIO $fLiftText$fLiftByteString$fLiftNonEmpty $fLiftFixed$fLiftDiffTime$fLiftProtocol $fLiftPort $fLiftPorts$fLiftRegistry $fLiftImage$fLiftImageAlias $fLiftTag $fLiftDigest$fLiftBaseImage$fLiftArguments$fLiftInstruction$fLiftInstructionPos$fLiftSourcePath$fLiftTargetPath $fLiftChown$fLiftCopySource$fLiftCopyArgs $fLiftAddArgs$fLiftDuration $fLiftRetries$fLiftCheckArgs $fLiftCheck edockerfile edockerfileE dockerfile dockerfileE text-1.2.3.1Data.Text.InternalText*prettyprinter-1.2.1-JPC8f5cJn5SAkoQXDSGO7Z"Data.Text.Prettyprint.Doc.InternalDoc customErrorversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName