This is a collection of Dockerfiles maintained by the Kiwi.com Platform Team.
The images are built automatically by Docker Hub for the :latest
tag,
with updates of the base image triggering rebuilds.
- Base image
python:3.6-alpine3.7
- Packages: CA certificates, ansible
We use this in CI to run Ansible playbooks.
- Base image: python:3.7-alpine3.8
- Packages: python
awscli
We use this to use AWS cli from Docker.
- Base image:
python:3.7-alpine
- Packages:
black
Image used to format python code using pre-commit
hooks and to check if all the files are correctly formatted on CI.
pre-commit
hook example:
- repo: local
hooks:
- id: black
name: black-code-formatter
language: docker_image
entry: --entrypoint black kiwicom/black:18.9b0
types: [python]
GitLab CI example:
code-format:
stage: build
image: kiwicom/black:18.9b0
script:
- black --check .
CLI usage example:
docker run -ti -v "$(pwd)":/src -v "$(pwd)/.blackcache":/home/black/.cache --workdir=/src kiwicom/black:18.9b0 black .
- Base image:
alpine:3.6
- Packages:
curl
,jq
,ca-certificates
We use this mostly in our GitLab CI or otherwise automated tasks. It's useful when the task is about making or parsing HTTPS requests.
- Base image:
node:8-slim
- Packages: npm's
cypress-cli
and dependencies from apt
This is a container with cypress.io we use to automate our frontend tests.
- Base image:
docker:18.02
- Packages: goss and dgoss
goss is a tool for quick and easy server validation.
We use in CI to to start a container and test if it responds on a certain endpoint.
http:
http://localhost/ping:
status: 200
timeout: 100 # milliseconds
body:
- pong
goss:
image: kiwicom/dgoss
variables:
GOSS_FILES_PATH: .misc/goss
GOSS_FILES_STRATEGY: cp
script:
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA && dgoss run $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- Base image:
alpine:3.5
- Packages:
docker
,curl
, Spotify'sdocker-gc
, and a script to remove dangling volumes.
We use this to cleanup docker garbage. It removes more garbage than docker system prune
. Mostly for dev machines purposes.
Usage is docker run -v/var/run/docker.sock:/var/run/docker.sock kiwicom/docker-cleanup
- Base image:
docker:1.12
- Packages:
tini
This image runs crond
in the foreground
It takes a CRONTAB
environment variable such as 37 13 * * * * echo hi
, to print hi
everyday at 13:37 UTC.
- Base image:
alpine:3.5
- Packages:
docker
, Spotify'sdocker-gc
This is a copy of clockworksoul's docker-gc-cron, which is maintained in our GitHub repo for security.
Requires the /var/run/docker.sock
socket mounted.
- Base image:
docker.elastic.co/elasticsearch/elasticsearch:5.2.2
- Packages: ElasticSearch's
analysis-icu
We use this for integration tests in CI, as a GitLab CI service.
- Base image:
alpine:3.6
- Packages: facebook's
flow
, and its dependencies
We use this in CI to check JavaScript code's type correctness, mounting code to /app
and running flow check --show-all-errors
.
- Base image:
datadog/agent:6.3.3
A Datadog Agent image that collects metrics exposed by GitLab and GitLab CI.
- Base image:
python:3.7-alpine3.8
- Packages:
mypy
Image used to type-check python code using pre-commit
hooks and in CI.
pre-commit
hook example:
- repo: local
hooks:
- id: mypy
name: mypy-type-checks
language: docker_image
entry: --entrypoint mypy kiwicom/mypy:0.620
types: [python]
GitLab CI example:
type-checks:
stage: build
image: kiwicom/mypy:0.620
script:
- mypy -p kw
CLI usage example:
docker run -ti -v "$(pwd)":/src --workdir=/src kiwicom/mypy:0.620 mypy -p kw
- Base image:
nginx:alpine
We use this to redirect http to https in Rancher.
- Base image:
node:9-alpine
- Packages: npm
nsm
We use this in CI to check security issues of Node.js dependencies.
- Base image:
buildpack-deps:jessie-curl
We use this as reverse proxy that provides authentication with Gitlab or other provider.
Source: https://github.com/chauffer/dockerfiles/tree/master/oauth2-proxy
- Base image:
python:3.6-alpine
- Packages: rancher-compose, CA certificates
We use this mostly to programmatically create stacks in Rancher.
- Base image:
alpine:3.5
- Packages: OpenSSH server,
s3fs
1.82 and dependencies
This is a pretty cool image. ⛄ It's a containerized SFTP server with S3 as a backend for storage.
Check the entrypoint
file to see how it works.
- Base image: python:2-alpine
- Packages:
docker
from apk, pythons3cmd
We use this to copy static files from Docker images and put them onto S3 which serves them.
- Base image: python:2-alpine
Like above, but no docker.
Like above, but s4cmd instead of s3cmd
- Base image:
sentry
- Packages:
sentry-auth-gitlab
,datadog
Our own sentry
image. With GitLab SSO support
- Base image:
openjdk:8-alpine
- Packages:
sonarqube-developer
Because of the bug SONAR-9384 we were experiencing many problems in our CI pipelines so we needed to upgrade our Sonarqube docker image. As Sonarqube doesn't offer a docker image for 7.2 we decided to build our own.
The usage is the same as with the official image
- Base image:
openjdk:8-jre-alpine
- Packages:
sonar-scanner
We use this to scan code for SonarQube. It assumes it's running on GitLab CI.
Usage: $ scan list,of,dirs
or $ preview list,of,dirs
for preview mode.
Requires setting SONARQUBE_URL
- Base image
alpine:3.8
- Packages:
tox
,pyenv
and its dependencies
Image that allows running tox tests on multiple python versions.