New Docker Goodies: Init and Watch

Recently Docker brought some new stuff that I found very useful for developers. They are still in the experimental phase but are already very useful. Try them and give your feedback to the Docker team. The code I’m using for this is available here. Let’s start… Init Writing a Dockerfile when starting with a new application is tedious. Why? Because we are repeating most of the stuff over and over again. So, in the end, we reach to copy/paste solution. Of course, copy/paste needs to be modified to fit an application’s needs. I do not say that copy/paste is terrible, but with it, we miss new stuff that Docker brings to us. Even seasoned developers miss stuff. If we do not do it every day, we forget. Because of that, the Docker team brought us a new command called init. The init is not new but is still in beta. This time with more improvements. ...

May 1, 2023 · 4 min · Robert Nemet

How to Create a Local Development Environment with Docker Compose

As a developer, when working on a service, you face a problem with the working environment. And when I say working environment, I do not think about IDEs, stacks, OS, libraries, etc. I’m thinking about the environment where our services live. These days, our services are usually packed inside some container and put in some kind of distributed system. Most containers and other moving parts are controlled by Kubernetes, Nomad, and similar orchestration systems. ...

April 1, 2023 · 6 min · Robert Nemet

Docker-Compose: How To Rebuild Working Application

While developing application and using docker-compose one question quickly arise: How to properly rebuild application? Once an image is built new one will not be built with the same tag as long it exists in a local cache. The compose builds an image it names it with the pattern <context>_<service_name>:latest. Where: Context is directory name where compose YAML is Service is service name in compose YAML file This means that you can stop or takedown the compose application, next time you run it your images will not be rebuilt if they already exist. Anyway, we aim to rebuild/restart only parts of the system that are changed. Once the compose application is running, we only rebuild the service we are working on. ...

February 2, 2022 · 2 min · Robert Nemet

Docker-Compose: What Every Developer Needs To Know

If you are developing microservices, docker-compose(compose), can be a very powerful tool. Think of a case with an API service and database. Creating and maintaining a database with the use of the Liquibase. Initial plan …would be: start DB run the Liquibase to make changes start an app Adding docker-compose as a driver to utilize this process: sequenceDiagram autonumber Docker -->> PostgresDB: start PostgresDB -->> PostgresDB: wait to finish start PostgresDB -->> Docker: done Docker -->> LiquibasePG: start LiquibasePGDB -->> PostgresDB: execute changeLog LiquibasePGDB -->> Docker: done Docker -->> Echo: start PostgresDB Setup This is the simplest step. According to the docs, this would be enough: ...

January 26, 2022 · 3 min · Robert Nemet

Docker-Compose: Intro

Working with containers is a necessity today for developers. You will likely need to work with some kind of storage or interact with some external service, like Solr or Postgres. You can install the required service on your local machine, which comes with the burden of choosing the correct installation, configuration, etc… Nothing too complicated but takes time. Docker and Containers In short, the container is an isolated process on the host machine. It runs in the isolated file system, a container image. Docker would be a platform, a set of tools, for building, running, sharing applications packed in the container image. ...

January 8, 2022 · 3 min · Robert Nemet