An Alpine based docker image contains a good combination of commenly used tools to build, package as docker image, login and push to AWS ECR, AWS authentication and all Kuberentes staff.
The image is mainly used as a builder images while creating CICD pipelines.
version will match to the kubectl. other tools will be updated on kubectl update time.
Tool | Version | Description |
---|---|---|
Docker Engine | 18.6 | Docker image containing docker engine to offer Docker inside Docker (DinD) |
AWS CLI | 2.2.37 | AWS commandline tools for managing simple infrastructure tasks |
cUrl | 7.67.0 | Commandline professional http(s) client tool |
Bash | 4.4.19 | Advanced linux shell |
Kubectl | 1.21.2 | Kubectl used to administrate the K8S cluster |
git | 2.24.1 | World's most popular version control tool |
helm | 3.5.4 | Package manager for K8S clusters that simplifies complex deployments with simple Charts |
helm-s3 plugin | 0.10.0 | S3 integration plugin to use S3 as a private Helm Charts repositories |
kubeval | 0.16.1 | Validate your Kubernetes configuration files, supports multiple Kubernetes versions |
dockerize | 0.6.1 | Utility to simplify running applications in docker containers |
sops | 3.7.1 | Simple and flexible tool for managing secrets |
Simply pull the image from official docker hub using the following command as it contains nothing more than a set of open source tools.
docker pull guitarrapc/docker-awscli-kubectl
- Please use docker enabled gitlab runner and make sure docker engine is running in priviledged mode to enable Docker inside Docker (DinD). Learn more? https://docs.gitlab.com/runner/executors/docker.html#use-docker-in-docker-with-privileged-mode
- Use the image as your builder image to be loaded into the runner during the build step initiation and enable DinD service. To acheive this please add the following snippet to your pipeline code i.e. gitlab-ci.yaml.
docker:
stage: create-docker-image
image: guitarrapc/docker-awscli-kubectl
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay # For better build performance
script:
- echo 'Your build scripts goes here and you can use all of the above toolset'
docker build --no-cache -t guitarrapc-docker-awscli-kubectl:latest .
trivy image -format table --exit-code 1 --ignore-unfixed --vuln-type os,library --severity CRITICAL,HIGH --no-progress guitarrapc-docker-awscli-kubectl:latest
Ahmed Sorour, https://github.com/aserour