B@       Safe-InferredTrivial Identity monad.Used as a base for the Writer  Safe-InferredDockerfile instruction set >The ONBUILD instruction adds to the image a trigger instruction to be executed at a later time, when the image is used as the base for another build. The trigger will be executed in the context of the downstream build, as if it had been inserted immediately after the FROM instruction in the downstream Dockerfile. ^ [...] ONBUILD ADD . appsrc ONBUILD RUN usrlocalbinpython-build --dir app src [...] !The WORKDIR instruction sets the working directory for any RUN, CMD, ENTRYPOINT, COPY and ADD instructions that follow it in the Dockerfile.  WORKDIR path to/workdir" USER daemonThe USER instruction sets the user name or UID to use when running the image and for any RUN, CMD and ENTRYPOINT instructions that follow it in the Dockerfile.#  VOLUME ["/data"]The VOLUME instruction creates a mount point with the specified name and marks it as holding externally mounted volumes from native host or other containers.$RAn ENTRYPOINT allows you to configure a container that will run as an executable. vENTRYPOINT ["executable", "param1", "param2"] (the preferred exec form) ENTRYPOINT command param1 param2 (shell form) %COPY has two forms:COPY  src...  dest COPY [" src"... " dest:"] (this form is required for paths containing whitespace):The COPY instruction copies new files or directories from  src? and adds them to the filesystem of the container at the path  dest.&LThe ADD instruction copies new files, directories or remote file URLs from  src? and adds them to the filesystem of the container at the path  dest.Syntax:ADD  src...  dest ADD [" src"... " dest:"] (this form is required for paths containing whitespace)LThe ADD instruction copies new files, directories or remote file URLs from  src? and adds them to the filesystem of the container at the path  dest.'2The ENV instruction sets the environment variable  key to the value  value}. This value will be in the environment of all "descendent" Dockerfile commands and can be replaced inline in many as well.Syntax: ENV  key  value ENV  key= value ... ?The second form allows multiple key value pairs to be specified  ENV myName="John Doe" myDog=Rex The Dog myCat=fluffy and ENV myName John Doe ENV myDog Rex The Dog ENV myCat fluffy (EXPOSE  port [ port...])The LABEL instruction adds metadata to an image. A LABEL is a key-value pair. To include spaces within a LABEL value, use quotes and blackslashes as you would in command-line parsing.Syntax: LABEL com.example.label-without-value LABEL com.example.label-with-value="foo" LABEL version="1.0" LABEL description="This text illustrates that label-values can span multiple lines." *$The CMD instruction has three forms:Syntax: CMD ["executable","param1","param2"] (exec form, this is the preferred form) CMD ["param1","param2"] (as default parameters to ENTRYPOINT) CMD command param1 param2 (shell form) There can only be one CMD instruction in a Dockerfile. If you list more than one CMD then only the last CMD will take effect. @bIf the CMD instruction does not specify an executable, an ENTRYPOINT instruction must be present.+RUN has 2 forms: Syntax:  RUN  command" (the command is run in a shell - binIsh -c - shell form) RUN ["executable", "param1", "param2"] (exec form) ,WThe MAINTAINER instruction allows you to set the Author field of the generated images.-FThe FROM instruction sets the Base Image for subsequent instructions. /https://docs.docker.com/reference/builder/#fromAFROM must be the first non-comment instruction in the Dockerfile.^FROM can appear multiple times within a single Dockerfile in order to create multiple images.Syntax: FROM  image FROM  image: tag FROM  image@ digest >TODO support alternate forms run scr ps = tell [ Run scr ps ]$ !"#$%&'()*+,-./0123 4   -,+*)('&%$#"! ./0123 45      !"#$%&'()*+,-./0123456dockerfile-0.1.0.1 Data.DockerControl.Monad.WriterDocker dockerfilefrom maintainerrunenvcmdexposeaddcopy entrypointvolumeuserworkdirIdentityWriterT unWriterTWriter runIdentity runWriter execWriter runWriterTtell$fMonadWriterT$fApplicativeWriterT$fFunctorWriterT$fMonadIdentity$fApplicativeIdentity$fFunctorIdentity InstructionOnBuildWorkDirUserVolume EntrypointCopyAddEnvExposeLabelCmdRun MaintainerFromDistroParam ScriptFileScript DockerFile prettyCmdonbuild