# Deployment with Docker

The quickest way to install Kestra is to use Docker Compose. This will start a non-production Kestra with all the dependencies.

# Before you begin

Make sure you have already installed :

# Launch Kestra

This will start all the dependencies with a preconfigured Kestra that is connected to everything!

Kestra will start a Standalone server (all the different servers in one JVM).
This is clearly not meant for production workloads, but is certainly sufficient to test on a local computer.

# Docker Image

# Use official image

The Kestra docker image is available in Docker hub (opens new window).

We provide 2 images :

  • kestra/kestra:latest
  • kestra/kestra:latest-full

The docker image is based on openjdk:11-jre-slim docker image.

# kestra/kestra:latest

This image :

# kestra/kestra:latest-full

This image contains all the kestra plugins and all the binaries for Python task (opens new window) or Node task (opens new window).
Take care that this image will always contain the last version of plugins that can have some breaking change.

# Create a new image with more binaries

If the base or full image does not contain binaries, you can easily create a new one with the below DockerFile:

FROM kestra/kestra:$IMAGE_TAG

RUN mkdir -p /app/plugins && \
  apt-get update -y && \
  apt-get install -y --no-install-recommends golang && \
  apt-get clean && rm -rf /var/lib/apt/lists/* /var/tmp/*

# Create a new image with plugins

By default, the Kestra base docker image does not contain any plugins, but you can create a new image with all the plugins you want:

FROM kestra/kestra:$IMAGE_TAG

RUN /app/kestra plugins install \
  io.kestra.plugin.notifications:task-notifications:LATEST \
  io.kestra.storage.gcs:storage-gcs:LATEST \

# Docker image tag

We provide 3 tags for a docker image :

  • latest: this will contain the latest default image along with its full variant latest-full.
  • release: an image with a preview of the next release along with its full variant release-full.
  • develop: an image based on the develop branch that will change every day and contain all unstable features we are working on, along with its full variant develop-full.