Skip to content

Use a Docker-based deployment when you already operate Docker hosts or Docker Compose and want a containerized Corridor installation without adopting Kubernetes.

Corridor provides production-ready Dockerfile templates with the installation bundle. Because Docker networking, storage, reverse proxies, and secret management vary significantly by organization, work with Corridor support to align the final compose or runtime configuration with your environment.

ComponentImplementation options
Web applicationCorridor app container behind a reverse proxy
API and workersCorridor worker containers for API and Spark queues
JupyterJupyter container or integration with an existing notebook service
File managementHost mount, Docker volume, or network-attached persistent storage
Metadata databaseExternal PostgreSQL, Oracle, SQL Server, or managed database service
SSL certificatesMounted read-only from host storage or injected during image build
Platform configurationMounted read-only files, environment variables, or approved secret store
  • Docker Engine 20.10 or later.
  • Docker Compose or an equivalent orchestration process if running multiple containers manually.
  • Persistent storage for uploads, notebooks, data, state, and backups.
  • Metadata database that meets the minimum requirements.
  • Reverse proxy such as Nginx, Apache, an ingress appliance, or a cloud load balancer.
  • TLS certificate for browser-facing traffic.
  1. Prepare the host, Docker runtime, persistent storage, database, DNS, and TLS certificate.
  2. Build or pull the Corridor images provided for your release.
  3. Configure shared volumes for data, notebooks, uploads, Jupyter state, and backups.
  4. Configure application settings through mounted config files or environment variables.
  5. Start the app, worker, Jupyter, and supporting containers.
  6. Run database migrations.
  7. Configure the reverse proxy so / reaches the app service and /jupyter reaches the Jupyter service.
  8. Verify logs, health checks, persistent storage, and user login.
  • Keep the database outside the app container for production deployments.
  • Use named volumes or network storage rather than ephemeral container filesystems.
  • Store secrets in your platform secret store instead of hard-coding them in compose files.
  • Separate app, worker, and Jupyter logs so operations teams can troubleshoot independently.
  • Align CPU and memory reservations with the minimum requirements.
  • Use Kubernetes for managed container orchestration on AKS, GKE, or EKS.
  • Use Terraform for cloud-managed container services such as ECS Fargate, Azure Container Apps, or Cloud Run.
  • Use Manual for VM or bare-metal installations that do not use containers.