Current section
Files
Jump to
Current section
Files
lib/mix/tasks/docker.ex
defmodule Mix.Tasks.Docker.Init do
use Mix.Task
@shortdoc "Initialize distillery release"
@moduledoc """
Initialize distillery release.
Any arguments and options will be passed directly to
`mix release.init` task.
This task also create a default `.dockerignore` file.
## Examples
# Use default options
mix docker.init
# Pass distillery config
mix docker.init --name foobar
"""
defdelegate run(args), to: MixDocker, as: :init
end
defmodule Mix.Tasks.Docker.Build do
use Mix.Task
@shortdoc "Build docker image from distillery release"
@preferred_cli_env :prod
@moduledoc """
Build docker image from distillery release.
Any arguments and options will be passed directly to
`docker build` command.
## Examples
# Build your app release
mix docker.build
# Skip cache
mix docker.build --no-cache
"""
defdelegate run(args), to: MixDocker, as: :build
end
defmodule Mix.Tasks.Docker.Release do
use Mix.Task
@shortdoc "Build minimal, self-contained docker image"
@preferred_cli_env :prod
@moduledoc """
Build minimal, self-contained docker image
Any arguments and options will be passed directly to
`docker build` command.
## Examples
# Build minimal container
mix docker.release
# Skip cache
mix docker.release --no-cache
"""
defdelegate run(args), to: MixDocker, as: :release
end
defmodule Mix.Tasks.Docker.Publish do
use Mix.Task
@shortdoc "Publish current image to docker registry"
@preferred_cli_env :prod
@moduledoc """
Publish current image to docker registry
## Examples
# Just publish
mix docker.publish
# Use different tag for published image
mix docker.publish --tag "mytag-{mix-version}-{git-branch}"
"""
defdelegate run(args), to: MixDocker, as: :publish
end
defmodule Mix.Tasks.Docker.Shipit do
use Mix.Task
@shortdoc "Run build & release & publish"
@preferred_cli_env :prod
@moduledoc """
Run build & release & publis.
This is the same as running
mix do docker.build, docker.release, docker.publish
You can also pass docker build/publish flags.
## Examples
# Use custom --tag (see docker.publish) and --no-cache for docker build
mix docker.shipit --tag my-custom-tag --no-cache
"""
defdelegate run(args), to: MixDocker, as: :shipit
end
defmodule Mix.Tasks.Docker.Customize do
use Mix.Task
@shortdoc "Copy & customize Dockerfiles"
@preferred_cli_env :prod
@moduledoc """
Copy & customize Dockerfiles
This task will copy Dockerfile.build and Dockerfile.release
into project's directory for further customization.
"""
defdelegate run(args), to: MixDocker, as: :customize
end