# 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
- Download the compose file here (opens new window)
- Run
docker-compose up
- Open http://localhost:8080 (opens new window) in your browser
This will start all the dependencies with a pre-configured 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.
The configuration will be done inside the KESTRA_CONFIGURATION
environment variable of the Kestra container. You can update the environment variable inside the Docker compose file, or pass it via the docker command line argument.
If you pass it via the docker command line argument, don't forget to add existing configuration or nothing will work anymore.
# Docker Image
# Use official images
The official Kestra docker images are available in Docker hub (opens new window).
We provide 2 images :
kestra/kestra:latest
kestra/kestra:latest-full
These docker images are based on the eclipse-temurin:11-jre
docker image.
# kestra/kestra:latest
This image :
- doesn't contains any kestra plugins.
- doesn't contains a lot of binaries to work with your Bash tasks.
- doesn't contains some binaries for Python tasks (opens new window) or Node tasks (opens new window).
# kestra/kestra:latest-full
This image contains all the kestra plugins and all the binaries for Python tasks (opens new window) or Node tasks (opens new window).
Take care that this image will always contains the latest version of all plugins that can have some breaking changes.
# Create a new image with more binaries
If the base or full image does not contains binaries you need, you can create a new image from the Kestra base image and add needed binaries.
The following DockerFile
creates an image from the Kestra base image and adds the golang
binary:
ARG IMAGE_TAG=latest
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 more plugins
By default, the Kestra base docker image does not contains any plugins, you can create a new image from the Kestra base image and add the needed plugins.
The following DockerFile
creates an image from the Kestra base image and adds the plugin-notifications
, storage-gcs
and plugin-gcp
plugins using the command kestra plugins install
:
ARG IMAGE_TAG=latest
FROM kestra/kestra:$IMAGE_TAG
RUN /app/kestra plugins install \
io.kestra.plugin:plugin-notifications:LATEST \
io.kestra.storage:storage-gcs:LATEST \
io.kestra.plugin:plugin-gcp:LATEST
# Docker image tags
We provide 3 tags for each docker images:
latest
: the latest default image along with its full variantlatest-full
.release
: the preview of the next release along with its full variantrelease-full
.develop
: an experimental image based on thedevelop
branch that will change every day and contains all unstable features we are working on, along with its full variantdevelop-full
.