Docker Executor
Beside using bare metal machine in Kraken CI jobs, it is possible to select a Docker executor. This can be made in the following way:
def stage(ctx):
return {
"parent": "root",
"triggers": {
"parent": True
},
"parameters": [],
"configs": [],
"jobs": [{
"name": "Docker job",
"steps": [{
"tool": "shell",
"cmd": "echo 'Hello World'"
}],
"environments": [{
"executor": "docker",
"system": "krakenci/ubuntu:20.04",
"agents_group": "any",
"config": "default"
}]
}]
}
In the jobs
list, in the environments
section there are present:
"executor": "docker",
- this indicates that instead of bare metal machine a Docker container should be used to execute a job"system": "krakenci/ubuntu:20.04",
- this indicated that particular Docker image should be used, in this case this isUbuntu:20.04
fromkrakenci
user on Docker Hub.
Images
There are many images prepared for Kraken CI Docker executor. They are available on Docker Hub:
Language Images
There are many images prepared for various programming languages.
Their usage, based on Hello World
examples, can be seen on Demo Lab
of Kraken CI: https://lab.kraken.ci/branches/33/ci
Language | Docker Hub | Dockerfile | Image |
---|---|---|---|
Clojure | krakenci/clojure | Dockerfile | clojure:1.11 |
Crystal | krakenci/crystal | Dockerfile | crystal:1.4 |
Dart | krakenci/dart | Dockerfile | dart:2.16 |
Elixir | krakenci/elixir | Dockerfile | elixir:1.13 |
Erlang | krakenci/erlang | Dockerfile | erlang:23.3 |
GNU C/C++ | krakenci/gcc | Dockerfile | gcc:11.3 |
Go | krakenci/golang | Dockerfile | golang:1.18 |
Groovy | krakenci/groovy | Dockerfile | groovy:3.0 |
Haskell | krakenci/haskell | Dockerfile | haskell:9.2 |
Haxe | krakenci/haxe | Dockerfile | haxe:4.2 |
Julia | krakenci/julia | Dockerfile | julia:1.7 |
C# / Mono | krakenci/mono | Dockerfile | mono:6.12 |
Javascript / Node | krakenci/node | Dockerfile | node:18.0 |
Java / OpenJDK | krakenci/openjdk | Dockerfile | openjdk:11.0 |
Perl | krakenci/perl | Dockerfile | perl:5.34 |
Perl 6 / Rakudo | krakenci/rakudo | Dockerfile | rakudo:2021.04 |
PHP | krakenci/php | Dockerfile | php:8.0 |
Python | krakenci/python | Dockerfile | python:3.8 |
Ruby | krakenci/ruby | Dockerfile | ruby:3.1 |
Rust | krakenci/rust | Dockerfile | rust:1.60 |
Swift | krakenci/swift | Dockerfile | swift:5.6 |
System Images
System | Tags / Versions | Dockerfile | Base Image |
---|---|---|---|
Ubuntu 20.04 | krakenci/ubuntu:20.04 | Dockerfile | ubuntu:20.04 |
CentOS 8 | krakenci/centos:8 | Dockerfile | centos:8 |
Fedora 33 | krakenci/fedora:33 | Dockerfile | fedora:32 |
Tested Vanilla Images
- fedora:32
- fedora:33
- fedora:34
- fedora:35
- fedora:36
- fedora:37
- rockylinux:8
- rockylinux:9
- almalinux:8
- almalinux:9
- debian:buster
- debian:bullseye
- debian:bookworm
- ubuntu:18.04
- ubuntu:20.04
- ubuntu:22.04
For details, please, check a testing workflow results: https://lab.kraken.ci/branches/12/ci