Tagged "devops"

Building Multi-Platform Docker Images for Intel and ARM with AWS CodeBuild

TL;DR The Docker BuildKit buildx CLI plugin simplifies building Docker images for different OS/CPU platforms (e.g. linux/amd64, linux/arm64, linux/arm, windows/amd64) So why is it a big deal now? Who needs Docker images for Arm platform anyway. Raspberry Pi geeks? A good reason for this is just a one word Graviton2…

Get a Shell to a Kubernetes Node

Throughout the lifecycle of your Kubernetes cluster, you may need to access a cluster worker node. This access could be for maintenance, configuration inspection, log collection, or other troubleshooting operations. More than that, it would be nice, if you could enable this access whenever it’s needed and disable when you finish your task. SSH Approach While it’s possible to configure Kubernetes nodes with SSH access, this also makes worker nodes more vulnerable.

Continuous Delivery and Continuous Deployment for Kubernetes microservices

Continuous Delivery and Continuous Deployment for Kubernetes microservices THIS IS A DRAFT VERSION OF POST TO COME, PLEASE DO NOT SHARE Starting Point Over last years we’ve been adopting several concepts for our project, straggling to make them work together. The first one is the Microservice Architecture. We did not start it clean and by the book, rather applied it to the already existing project: splitting big services into smaller and breaking excessive coupling.

Chaos Testing for Docker Containers

What follows is the text of my presentation, Chaos Testing for Docker Containers that I gave at ContainerCamp in London this year. I’ve also decided to turn the presentation into an article. I edited the text slightly for readability and added some links for more context. You can find the original video recording and slides at the end of this post. Intro Software development is about building software services that support business needs.

Debugging remote Node.js application running in a Docker container

Teaser Suppose you want to debug a Node.js application already running on a remote machine inside Docker container. And would like to do it without modifying command arguments (enabling debug mode) and opening remote Node.js debugger agent port to the whole world. I bet you didn’t know that it’s possible and also have no idea how to do it. I encourage you to continue reading this post if you are eager to learn some new cool stuff.

Create lean Node.js image with Docker multi-stage build

TL;DR Starting from Docker 17.05+, you can create a single Dockerfile that can build multiple helper images with compilers, tools, and tests and use files from above images to produce the final Docker image. The “core principle” of Dockerfile Docker can build images by reading the instructions from a Dockerfile. A Dockerfile is a text file that contains a list of all the commands needed to build a new Docker image.

Crafting perfect Java Docker build flow

TL;DR What is the bare minimum you need to build, test and run my Java application in Docker container? The recipe: Create a separate Docker image for each step and optimize the way you are running it. Introduction I started working with Java in 1998, and for a long time, it was my main programming language. It was a long loveā€“hate relationship. DDuring my work career, I wrote a lot of code in Java.

Everyday hacks for Docker

In this post, I’ve decided to share with you some useful commands and tools, I’m frequently using, working with amazing Docker technology. There is no particular order or “coolness level” for every “hack”. I will try to present the use case and how does specific command or tool help me with my work. Cleaning up Working with Docker for some time, you start to accumulate development junk: unused volumes, networks, exited containers and unused images.

Deploy Docker Compose (v3) to Swarm (mode) Cluster

Disclaimer: all code snippets bellow are working only with Docker 1.13+ TL;DR Docker 1.13 simplifies deployment of composed application to a swarm (mode) cluster. And you can do it without creating a new dab (Distribution Application Bundle) file, but just using familiar and well-known docker-compose.yml syntax (with some additions) and --compose-file option. Swarm cluster Docker Engine 1.12 introduced a new swarm mode for natively managing a cluster of Docker Engines called a swarm.

Do not ignore .dockerignore

TL;DR Tip: Consider to define and use .dockerignore file for every Docker image you are building. It can help you to reduce Docker image size, speedup docker build and avoid unintended secret exposure. Docker build context The docker build command is used to build a new Docker image. There is one argument you can pass to the build command build context. So, what is the Docker build context? First, remember, that Docker is a client-server application, it consists from Docker client and Docker server (also known as daemon).