2.2 Docker Environment
Docker Compose
Our setup for the application is quite simple. It consists of the Quarkus service application and its database
application-db. Further we have three more containers setup. We use jaeger as our tracing, prometheus to scrape the
metrics and grafana to visualize them in dashboards.
All configuration for the docker environment is located in the folder docker. The folder docker/config is used to
configure prometheus and grafana.
Host mapped container ports
Starting up the docker-compose will create a bridge network. We mapped most container ports to the docker host. This provides easy access for debugging like attaching the database to your IDE.
However, the most important ports of the containers are:
| Container | Internal Port | Host Port | Purpose |
|---|---|---|---|
application | 8080 | 8080 | Main application port |
application-db | 5432 | 5432 | Database port |
jaeger | 16686 | 16686 | Jaeger UI |
jaeger | 14268 | 14268 | Port used to send traces from our Quarkus applications to Jaeger |
prometheus | 9090 | 9090 | Prometheus service port (includes UI) |
grafana | 3000 | 3000 | Grafana UI |
Have a look at Jaeger Port Details if you need more information about the available Jaeger ports.
Task 2.2.1 - Inspecting the docker environment
Have a look at the /code/monolith/docker folder and get familiar with the docker environment specified in docker-compose.yaml