Skip to content

Repository files navigation

Docker

Setup and usages for Docker, and how it can be used with local development and testing.

This repository now uses a Docker Compose-first process. Direct Docker CLI is still used only for operations that Compose does not replace well (for example, dotnet publish, mvn package, and docker exec SQL initialization commands).

Install

Install and set up Docker on your local PC.

Docker documentation:

Preparation

Open a command line window. The commands found in this, and related, READMEs will be executed in this command line window.

Change to the current directory.

cd C:\Working\Storage\Dev\GitHub\Docker

Create a new working directory (if not already existing):

if not exist C:\Working\Storage\Dev\GitHub\Working mkdir C:\Working\Storage\Dev\GitHub\Working

Then, execute the networking command listed in the Network section below.

Compose Files

  • Api_dotnet\docker-compose.api-dotnet.yml
  • Api_java\docker-compose.api-java.yml
  • Api_python\docker-compose.api-python.yml
  • Homepage\docker-compose.homepage.yml
  • PostgreSQL\docker-compose.postgresql.yml
  • SqlServer\docker-compose.sqlserver.yml
  • Ui_angular\docker-compose.ui-angular.yml
  • Utility_dotnet\docker-compose.utility-dotnet.yml

Builder Scripts

  • Api_dotnet\Docker-Api-dotnet-builder.bat
  • Api_java\Docker-Api-java-builder.bat
  • Api_python\Docker-Api-python-builder.bat
  • Dozzle\Docker-Dozzle-builder.bat
  • Homepage\Docker-Homepage-builder.bat
  • PostgreSQL\Docker-PostgreSQL-builder.bat
  • SqlServer\Docker-SQLServer-builder.bat
  • Ui_angular\Docker-Ui-angular-builder.bat
  • UptimeKuma\Docker-UptimeKuma-builder.bat
  • Utility_dotnet\Docker-Utility-dornet-builder.bat

Each script is the primary entry point for its stack and is kept aligned with its corresponding README.

On Windows, the API builder scripts for .NET, Java, and Python automatically probe and select open host ports within predefined ranges when preferred ports are reserved or in use.

Secrets

Runtime secrets are now stored in separate local files under the secrets/ directory.

  • Template files (*.env.example) are committed.
  • Local secret files (*.env) are ignored by git.

See secrets/README.md for setup details.

Network

Create an internal network that will be shared by the different containers that need to communicate with one another (if not already existing).

docker network inspect pilot-net >nul 2>&1 || docker network create pilot-net

Read details about the new network:

docker network inspect pilot-net

Active Subjects

Dozzle

A real time Docker log viewer or partition logs.

Follow the directions in the Dozzle README.

Homepage

A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.

Follow the directions in the Homepage README.

Pilot API (DotNet)

A .NET Core API that presents data from the Northwind database (MS SQL Server or PostgreSQL)

Follow the directions in the API (DotNet) README.

Pilot API (Java)

A Java Spring Boot API that presents data from the Northwind database (MS SQL Server or PostgreSQL)

Follow the directions in the API (Java) README.

Pilot API (Python)

A Python FastAPI application that presents data from the Northwind database (MS SQL Server or PostgreSQL)

Follow the directions in the API (Python) README.

Pilot UI (Angular)

An Angular single page application that presents the Northwind data from the Pilot APIs.

Follow the directions in the UI (Angular) README.

PostgreSQL

A PostgreSQL database installation.

Follow the directions in the PostgreSQL README.

SQL Server

A Microsoft SQL Server database installation.

Follow the directions in the SQL Server README

Uptime Kuma

Simple up or down checks and status pages for monitoring Docker partitions/applications, and other sources.

Follow the directions in the Uptime Kuma README.

Utility API (DotNet)

A .NET Core API that contain utility tooling (MS SQL Server or PostgreSQL)

Follow the directions in the Utility (DotNet) README.

Future Subjects

Jaeger

Natively supports OTLP to receive trace data.

Follow the directions in the Jaeger README.

Prometheus

Send your metric data to Prometheus.

Follow the directions in the Prometheus README.

Zipkin

A distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in service architectures. Features include both the collection and lookup of this data.

Follow the directions in the Zipkin README.

Redis

Redis provides solutions for caching

Follow the directions in the Redis README.

Docker Containers and Ports

Status: Type: Name: Inner Port: Outer Port: URL
Angular UI pilot-ui 4200 55401 http://localhost:55901/
ApiDotNet (SQL Server) pilot-api-dotnet-mssql 8080 55101 http://localhost:55101/swagger, http://localhost:55101/scalar
ApiDotNet (PostgreSQL) pilot-api-dotnet-postgres 8080 55201 http://localhost:55201/swagger, http://localhost:55201/scalar
ApiJava (SQL Server) pilot-api-java-mssql 8080 55301 http://localhost:55301/swagger-ui/index.html
ApiJava (PostgreSQL) pilot-api-java-postgres 8080 55401 http://localhost:55401/swagger-ui/index.html
ApiPython (SQL Server) pilot-api-python-mssql 8000 55501 http://localhost:55501/docs, http://localhost:55501/redoc
ApiPython (PostgreSQL) pilot-api-python-postgres 8000 55601 http://localhost:55601/docs, http://localhost:55601/redoc
ApiUtility (SQL Server) utility-api-dotnet-mssql 8080 55701 http://localhost:55701/swagger, http://localhost:55701/scalar
ApiUtility (PostgreSQL) utility-api-dotnet-postgres 8080 55801 http://localhost:55801/swagger, http://localhost:55801/scalar
Dozzle local-dozzle 8080 56101 http://localhost:56101
Grafana local-grafana 3000 3000 http://localhost:3000
Homepage local-homepage 3000 56201 http://localhost:56201
PostgreSQL local-postgres 5432 5432
SQL Server local-mssql 1433 1433
Uptime Kuma local-uptimekuma 3001 3001 http://localhost:3001
TBD Komodo local-komodo 9120 9120
TBD Bitwarden local-bitwarden ??? ???
TBD Duplicati local-duplicati 8200 8200
TBD Keycloak local-keycloak ??? ???
TBD GO Feature Flag local-gofeatureflag ??? ???

About

Setup and usages for Docker, and how it can be used with local development and testing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages