!Wn^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [ \ ] 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 "3;=FKTblanguage-docker P with additional location information required for creating good check messages language-docker%All commands available in DockerfilesIlanguage-dockerType of the Dockerfile ASTc   !%$"#&(')+*,-0/.126543789:;<=?>@BACDEFGHIJMLKNOPQRSTUXWVY[Z\]^_`abcedcbced_`a\]^Y[ZUXWVRSTQNOPJMLKIFGHCDE@BA=?>:;<789126543,-0/.)+*&(' !%$"#   None "#$*;<=^blanguage-dockerPretty print a I to a ^language-dockerPretty print a  to a _None"#1`language-docker+End parsing signaling a conversion error . None3 *None  "<>?bcmlanguage-docker"The type of free monad EDSL blockslanguage-docker The type of Identity based EDSL blockslanguage-docker'Runs the Dockerfile EDSL and returns a  Dockerfile$ you can pretty print or manipulatelanguage-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-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" %language-docker:Create an ENTRYPOINT instruction with the given arguments.  entrypoint "usrlocalbinprogram --some-flag" &language-docker2Create a CMD instruction with the given arguments. cmd "my-program --some-flag" 'language-dockerSCreate a COPY instruction. This function is meant to be used with the compinators ., , and - copy $ ["foo.js", "bar.js"] . "." copy $ ["some_file"] . "somepath" , "builder" (language-dockerZCreate a COPY instruction from a given build stage. This is a shorthand version of using ' with combinators. 1copyFromStage "builder" ["foo.js", "bar.js"] "." )language-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 ' instead. add ["foo.js", "bar.js"] "." *language-docker:Converts a NonEmpty list of strings to a NonEmpty list of FThis is a convenience function when you need to pass a non-static list of strings that you build somewhere as an argument for ' or ) 6someFiles <- glob "*.js" copy $ (toSources someFiles) . "." +language-dockerConverts a Text into a C[This is a convenience function when you need to pass a string variable as an argument for ' or ) Jlet destination = buildSomePath pwd add ["foo.js"] (toTarget destination) ,language-docker.Adds the --from= option to a COPY instruction.7This function is meant to be used as an infix operator: copy $ ["foo.js"] . "." , "builder" -language-docker/Adds the --chown= option to a COPY instruction.7This function is meant to be used as an infix operator: copy $ ["foo.js"] . "." - "www-data:www-data" .language-docker?Usedto join source paths with atarget path as an arguments for '7This function is meant to be used as an infix operator: copy $ ["foo.js"] . "." - ;language-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" <language-docker A version of  which allows IO actions=language-docker A version of  which allows IO actions>language-docker!Just runs the EDSL's writer monad?language-docker9Runs the EDSL's writer monad and pretty-prints the resultB      !"#$%&'()*+,-./0123456789:;<=>?B      !"#$%&'()*+,-./0123456789:;<=>?Nonee Nonei0Zlanguage-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 |] Z[\]Z[\]Nonei   #"$%!&)*+,-./0123456=>?@ABCDEFGHIJKLMNOPQR\]^_`abcde     !"#$%&'()*+,-./0123456789;<=>?Z\I=<>?! "#)'(.,-*+$& 56789  /01234 %;Z\  JKLMFGHCDE@AB=>?123456,-./0)*+ #"$%!bcde_`aNOP\]^RQ&  Safenlabcdefghi !"#$%&'()*+,-./001234567899:;;<=>??@ABCDDEFFGHHIJJKLLMNNOPQRSTUUVWXXYZZ[\]^_``abbcddefghijklmnopqrstuvwxyz{|}~;?$%&')*+-,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK L M N OPQRSTUV W X Y Z [ \ ] ^_,language-docker-6.0.3-G282Ed2HDS32gX2jCl7TgELanguage.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-6.5.0-4VKBtSFJhna3iLscGKIZAPText.Megaparsec.ErrorparseErrorPrettynormalizeEscapedLinesInstructionPos$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 UntaggedImage TaggedImage DigestedImage ImageAlias$sel:unImageAlias:ImageAlias DirectoryPorts$sel:unPorts:PortsPortPortStr PortRangeProtocolTCPUDPTag$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$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#$fShowErrorComponentDockerfileError$fEqDockerfileError$fDataDockerfileError$fOrdDockerfileError$fReadDockerfileError$fShowDockerfileError EInstruction StopSignalRunArgsCmdArgsEntrypointArgs OnBuildRawEmbed EBaseImageEUntaggedImage ETaggedImageEDigestedImage$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$fLiftBaseImage$fLiftArguments$fLiftInstruction$fLiftInstructionPos$fLiftSourcePath$fLiftTargetPath $fLiftChown$fLiftCopySource$fLiftCopyArgs $fLiftAddArgs$fLiftDuration $fLiftRetries$fLiftCheckArgs $fLiftCheck edockerfile edockerfileE dockerfile dockerfileE text-1.2.3.0Data.Text.InternalText)prettyprinter-1.2.1-1emSrHEjcl7usGITZsuhr"Data.Text.Prettyprint.Doc.InternalDoc customErrorversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName