stack-1.2.0: The Haskell Tool Stack

Safe HaskellNone
LanguageHaskell2010

Stack.Types.Docker

Description

Docker types.

Synopsis

Documentation

data DockerOpts Source

Docker configuration.

Constructors

DockerOpts 

Fields

dockerEnable :: !Bool

Is using Docker enabled?

dockerImage :: !String

Exact Docker image tag or ID. Overrides docker-repo-*/tag.

dockerRegistryLogin :: !Bool

Does registry require login for pulls?

dockerRegistryUsername :: !(Maybe String)

Optional username for Docker registry.

dockerRegistryPassword :: !(Maybe String)

Optional password for Docker registry.

dockerAutoPull :: !Bool

Automatically pull new images.

dockerDetach :: !Bool

Whether to run a detached container

dockerPersist :: !Bool

Create a persistent container (don't remove it when finished). Implied by dockerDetach.

dockerContainerName :: !(Maybe String)

Container name to use, only makes sense from command-line with dockerPersist or dockerDetach.

dockerRunArgs :: ![String]

Arguments to pass directly to docker run.

dockerMount :: ![Mount]

Volumes to mount in the container.

dockerEnv :: ![String]

Environment variables to set in the container.

dockerDatabasePath :: !(Path Abs File)

Location of image usage database.

dockerStackExe :: !(Maybe DockerStackExe)

Location of container-compatible stack executable

dockerSetUser :: !(Maybe Bool)

Set in-container user to match host's

dockerRequireDockerVersion :: !VersionRange

Require a version of Docker within this range.

data DockerOptsMonoid Source

An uninterpreted representation of docker options. Configurations may be "cascaded" using mappend (left-biased).

Constructors

DockerOptsMonoid 

Fields

dockerMonoidDefaultEnable :: !Any

Should Docker be defaulted to enabled (does docker: section exist in the config)?

dockerMonoidEnable :: !(First Bool)

Is using Docker enabled?

dockerMonoidRepoOrImage :: !(First DockerMonoidRepoOrImage)

Docker repository name (e.g. fpco/stack-build or fpco/stack-full:lts-2.8)

dockerMonoidRegistryLogin :: !(First Bool)

Does registry require login for pulls?

dockerMonoidRegistryUsername :: !(First String)

Optional username for Docker registry.

dockerMonoidRegistryPassword :: !(First String)

Optional password for Docker registry.

dockerMonoidAutoPull :: !(First Bool)

Automatically pull new images.

dockerMonoidDetach :: !(First Bool)

Whether to run a detached container

dockerMonoidPersist :: !(First Bool)

Create a persistent container (don't remove it when finished). Implied by dockerDetach.

dockerMonoidContainerName :: !(First String)

Container name to use, only makes sense from command-line with dockerPersist or dockerDetach.

dockerMonoidRunArgs :: ![String]

Arguments to pass directly to docker run

dockerMonoidMount :: ![Mount]

Volumes to mount in the container

dockerMonoidEnv :: ![String]

Environment variables to set in the container

dockerMonoidDatabasePath :: !(First (Path Abs File))

Location of image usage database.

dockerMonoidStackExe :: !(First DockerStackExe)

Location of container-compatible stack executable

dockerMonoidSetUser :: !(First Bool)

Set in-container user to match host's

dockerMonoidRequireDockerVersion :: !IntersectingVersionRange

See: dockerRequireDockerVersion

Instances

Show DockerOptsMonoid Source 
Generic DockerOptsMonoid Source 
Monoid DockerOptsMonoid Source

Left-biased combine Docker options

FromJSON (WithJSONWarnings DockerOptsMonoid) Source

Decode uninterpreted docker options from JSON/YAML.

type Rep DockerOptsMonoid Source 

data DockerStackExe Source

Where to get the stack executable to run in Docker containers

Constructors

DockerStackExeDownload

Download from official bindist

DockerStackExeHost

Host's stack (linux-x86_64 only)

DockerStackExeImage

Docker image's stack (versions must match)

DockerStackExePath (Path Abs File)

Executable at given path

data Mount Source

Docker volume mount.

Constructors

Mount String String 

Instances

Read Mount Source

For optparse-applicative.

Show Mount Source

Show instance.

FromJSON Mount Source

For YAML.

data DockerMonoidRepoOrImage Source

Options for Docker repository or image.

newtype VersionRangeJSON Source

Newtype for non-orphan FromJSON instance.

Instances

FromJSON VersionRangeJSON Source

Parse VersionRange.

data StackDockerException Source

Exceptions thrown by Stack.Docker.

Constructors

DockerMustBeEnabledException

Docker must be enabled to use the command.

OnlyOnHostException

Command must be run on host OS (not in a container).

InspectFailedException String

docker inspect failed.

NotPulledException String

Image does not exist.

InvalidCleanupCommandException String

Input to docker cleanup has invalid command.

InvalidImagesOutputException String

Invalid output from docker images.

InvalidPSOutputException String

Invalid output from docker ps.

InvalidInspectOutputException String

Invalid output from docker inspect.

PullFailedException String

Could not pull a Docker image.

DockerTooOldException Version Version

Installed version of docker below minimum version.

DockerVersionProhibitedException [Version] Version

Installed version of docker is prohibited.

BadDockerVersionException VersionRange Version

Installed version of docker is out of range specified in config file.

InvalidVersionOutputException

Invalid output from docker --version.

HostStackTooOldException Version (Maybe Version)

Version of stack on host is too old for version in image.

ContainerStackTooOldException Version Version

Version of stack in container/image is too old for version on host.

CannotDetermineProjectRootException

Can't determine the project root (where to put docker sandbox).

DockerNotInstalledException

docker --version failed.

UnsupportedStackExeHostPlatformException

Using host stack-exe on unsupported platform.

DockerStackExeParseException String

stack-exe option fails to parse.

dockerEnableArgName :: Text Source

Docker enable argument name.

dockerRepoArgName :: Text Source

Docker repo arg argument name.

dockerImageArgName :: Text Source

Docker image argument name.

dockerRegistryLoginArgName :: Text Source

Docker registry login argument name.

dockerRegistryUsernameArgName :: Text Source

Docker registry username argument name.

dockerRegistryPasswordArgName :: Text Source

Docker registry password argument name.

dockerAutoPullArgName :: Text Source

Docker auto-pull argument name.

dockerDetachArgName :: Text Source

Docker detach argument name.

dockerRunArgsArgName :: Text Source

Docker run args argument name.

dockerMountArgName :: Text Source

Docker mount argument name.

dockerEnvArgName :: Text Source

Docker environment variable argument name.

dockerContainerNameArgName :: Text Source

Docker container name argument name.

dockerPersistArgName :: Text Source

Docker persist argument name.

dockerDatabasePathArgName :: Text Source

Docker database path argument name.

dockerStackExeArgName :: Text Source

Docker database path argument name.

dockerStackExeDownloadVal :: String Source

Value for --docker-stack-exe=download

dockerStackExeHostVal :: String Source

Value for --docker-stack-exe=host

dockerStackExeImageVal :: String Source

Value for --docker-stack-exe=image

dockerSetUserArgName :: Text Source

Docker set-user argument name

dockerRequireDockerVersionArgName :: Text Source

Docker require-version argument name

dockerEntrypointArgName :: String Source

Argument name used to pass docker entrypoint data (only used internally)

dockerCmdName :: String Source

Command-line argument for "docker"

dockerPullCmdName :: String Source

Command-line argument for docker pull.

dockerCleanupCmdName :: String Source

Command-line argument for docker cleanup.

reExecArgName :: String Source

Command-line option for --internal-re-exec-version.

dockerContainerPlatform :: Platform Source

Platform that Docker containers run