docker mixin
This is a Docker mixin for Porter. The mixin provides the Docker CLI.
Source: Source: https://github.com/getporter/docker-mixin
Install or Upgrade
porter mixin install dockerRequired Extension
To declare that Docker access is required to run the bundle, as will probably
always be the case when using this mixin, we can add docker (the extension name)
under the required section in the manifest, like so:
required:
- dockerAdditional configuration for this extension is currently limited to whether or not the container should run as privileged or not:
required:
- docker:
privileged: falseDeclaring this extension as required is a great way to let potential users of your bundle know that Docker access is necessary to install.
See more information via the Porter documentation.
Mixin Declaration
To use this mixin in a bundle, declare it like so:
mixins:
- dockerMixin Configuration
The Docker client version can be specified via the clientVersion configuration when declaring this mixin. The default client version is currently set to 19.03.8.
- docker:
clientVersion: 19.03.8Mixin Commands
The commands available are docker pull, push, build, run, remove, and login.
Mixin Syntax & Examples
The same syntax applies for install, upgrade, and uninstall.
Docker pull
Syntax
You can specify either the tag or the digest.
- docker:
description: "Description of the command"
pull:
name: IMAGE_NAME
tag: IMAGE_TAG
digest: IMAGE_DIGEST
arguments:
- arg1
- arg2
flags:
FLAGNAME: FLAGVALUE
REPEATED_FLAG:
- FLAGVALUE1
- FLAGVALUE2Example
- docker:
description: "Install Whalesay"
pull:
name: ghcr.io/getporter/examples/images/whalesay
tag: latestDocker push
Syntax
- docker:
description: "Description of the command"
push:
name: IMAGE_NAME
tag: IMAGE_TAG
arguments:
- arg1
- arg2
flags:
FLAGNAME: FLAGVALUE
REPEATED_FLAG:
- FLAGVALUE1
- FLAGVALUE2Example
- docker:
description: "Push image"
push:
name: gmadhok/cookies
tag: v1.0Docker build
Syntax
- docker:
description: "Description of the command"
build:
tag: IMAGE_TAG
file: Dockerfile #OPTIONAL
path: PATH #defaults to "." OPTIONAL
arguments:
- arg1
- arg2
flags:
FLAGNAME: FLAGVALUE
REPEATED_FLAG:
- FLAGVALUE1
- FLAGVALUE2Example
- docker:
description: "Build image"
build:
tag: "gmadhok/cookies:v1.0"
file: DockerfileDocker run
Syntax
- docker:
description: "Description of the command"
run:
image: IMAGE
name: NAME
detach: BOOL #defaults to false
ports:
- host: NUMBER # porter exposed on the host
container: NUMBER # port exposed by the container
env:
variable: VALUE
privileged: BOOL #defaults to false
rm: BOOL #defaults to false
command: COMMAND
arguments:
- arg1
- arg2
flags:
FLAGNAME: FLAGVALUE
REPEATED_FLAG:
- FLAGVALUE1
- FLAGVALUE2
suppress-output: BOOL #defaults to falseExample
- docker:
description: "Run Whalesay"
run:
name: mixinpractice
image: "ghcr.io/getporter/examples/images/whalesay:latest"
detach: true
ports:
- host: 8080
container: 80
env:
myvar: "whales"
privileged: true
rm: true
command: cowsay
arguments:
- "Hello World"Docker remove
Syntax
- docker:
description: "Description of the command"
remove:
container: CONTAINER_NAME
force: BOOL #defaults to false
arguments:
- arg1
- arg2
flags:
FLAGNAME: FLAGVALUE
REPEATED_FLAG:
- FLAGVALUE1
- FLAGVALUE2Example
- docker:
description: "Remove mixinpractice"
remove:
container: mixinpractice
force: trueDocker login
Syntax
Username and password are optional because the mixin will default to using environment variables provided by DOCKER_USERNAME and DOCKER_PASSWORD from a parameter or a credential. See an example for how to use docker login and securely provide your username and password.
- docker:
description: "Description of the command"
login:
username: USERNAME #OPTIONAL
password: PASSWORD #OPTIONAL
arguments:
- arg1
- arg2
flags:
FLAGNAME: FLAGVALUE
REPEATED_FLAG:
- FLAGVALUE1
- FLAGVALUE2Example
- docker:
description: "Login to docker"
login:Invocation
Use of this mixin requires opting-in to Docker host access via a Porter setting. See the Porter documentation for further details.
Here we opt-in via the CLI flag, --allow-docker-host-access:
$ porter install --allow-docker-host-access