Skip to content

Containerization

Alexandar83 edited this page Feb 25, 2025 · 8 revisions

The Wall API is containerized using Docker to ensure scalability, portability, and ease of deployment across different environments.

1. Overview

Docker is used in the application to create a consistent, isolated environment across different operating systems.

  • Windows: The setup runs on Docker Desktop, providing a user-friendly way to manage containers.
  • Linux: Uses Docker Engine and Docker Compose for container and service orchestration.

✔ Containers streamline development by eliminating dependency conflicts, simplifying deployment, and ensuring that services such as
PostgreSQL, Redis, Celery, and Django run seamlessly together.


2. Folder Structure

Docker-related files are located in config/docker and config/scripts/docker.

Module Description
config/
 ├── docker/ Contains deployment files.
 │   ├── Dockerfile.demo Dockerfile for the demo environment setup.
 │   ├── Dockerfile.dev Dockerfile for the development environment.
 │   ├── Dockerfile.prod Dockerfile for the production environments (prod_v1,2).
 │   ├── docker-compose-demo.yml Docker Compose file for the demo environment.
 │   ├── docker-compose-dev.yml Docker Compose file for the development setup.
 │   ├── docker-compose-prod-v1.yml Production Compose file for prod_v1 deployment.
 │   └── docker-compose-prod-v2.yml Production Compose file for prod_v2 deployment.
 └── scripts/
     └── docker/ Contains Docker-related scripts.
         ├── docker-compose-dev+migrations.sh Initializes and starts the development environment,
ensuring database migrations are applied.
         ├── start_celery_computation_worker.sh Starts the Celery Worker 1.
         ├── wait_for_celery_worker.py Waits for all Celery workers to be ready.
         └── wait_for_postgres.py Ensures PostgreSQL is available before startup.

  • Dockerfiles define the containerized environments for development (dev), production (prod_v1 and prod_v2), and demo.
  • Docker Compose files orchestrate services such as PostgreSQL, Redis, Celery, and the API backend.
  • Docker-related scripts in scripts/docker/ handle tasks such as service initialization, dependency checks, worker management, and database migrations.

✔ This structure ensures modularity and maintainability by keeping Docker-related configurations and scripts organized within the broader application structure.

3. Docker Environments

The following pages provide structured guidance for setting up the application in the supported Docker environments, detailing their respective Dockerfile and Docker Compose configurations.

  1. Docker - Local Development
  2. Docker - Production v1 and Demo
  3. Docker - Production v2


Next:   Docker - Local Development
Back to: Test Suite

Return to Top
DTS Index
Home Page


Clone this wiki locally