Docker

We've deployed thousands of containerized applications at scale and have optimized the sherpa.sh infrastructure for maximum Docker performance. When deploying Docker containers to sherpa.sh you get additional performance and scalability benefits you wouldn't get when self-hosting - with zero-configuration - thanks to our container-optimized architecture.

Supported Frameworks

If it works in a Docker container on your machine, it works on sherpa.sh. Full stop. No magic tricks, no obscure configuration requirements – just containers doing what containers do best: containing things.

Popular frameworks we've seen deployed (but certainly not limited to):

  • Django

  • Rails

  • Laravel

  • Express.js

  • Flask

  • Spring Boot

  • FastAPI

  • Phoenix

  • ASP.NET Core

  • Strapi

  • NestJS

We've even seen people containerize legacy Yesod (Haskell) applications. We didn't ask why, and neither should you.

Supported Features

Feature
Support

Custom Dockerfile

βœ…

Multistage builds

βœ…

Custom port configuration

βœ…

Environment variables

βœ…

Secrets management

βœ…

Autoscaling scale

βœ…

Multi region deployment

Enterprise Only

Blue/green deployment

βœ…

Health checks

βœ…

Container logs

βœ…

Custom resource allocation

βœ…

Docker Quickstart

To deploy your first Docker container, follow our quick start guide. Your container will be live in ~2 minutes.

What you get out of the box:

  • Zero-configuration deployments that just work

  • Automatic HTTPS and custom domain support

  • Built-in performance optimization

  • Global, production-ready infrastructure that can scale

  • Never pay for idle instances. Only pay for what you use

Architecture

To maximize performance - and savings - we build and deploy your Docker containers using our optimized infrastructure. When you push your code, we:

  1. Detect your Dockerfile in your repository

  2. Build your container image in the same directory as your Dockerfile

  3. Deploy to your configured region(s)

  4. Auto-scale horizontally based on traffic patterns. Has traffic increases we spend up more containers. As traffic decreases we spin down those containers.

Configuration

We believe in convention over configuration. Your existing Dockerfile works immediately - no additional setup required. When you need customization, our platform stays flexible.

Dockerfile Requirements

  • Your Docker file can use any name. It doesn't have to be Dockerfile . Just specify it in the settings.

  • Must expose a port via the EXPOSE instruction. You must set this value inside of the application settings.

  • Should follow Docker best practices for layer caching and image size. This is not necessary. It will just help speed up your build time.

CDN Integration

All Docker container deployments are automatically placed behind our global CDN. This provides:

  1. Automatic static asset caching: The CDN respects any cache-control headers returned by your application

  2. Framework-specific optimizations: Our CDN will automatically cache the static assets the application you are using as long as they are served over HTTP from the Docker container. This will work out the box for most frameworks. Django Example: For Django applications, static files served from your /static/ directory will automatically be cached by the CDN according to your cache headers. For optimal performance, set:

    pythonCopy# settings.py
    STATIC_URL = '/static/'
    STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

    Rails Example: For Rails applications, assets compiled with the asset pipeline will be cached by the CDN. Configure your production environment with:

    rubyCopy# config/environments/production.rb
    config.public_file_server.headers = {
      'Cache-Control' => 'public, max-age=31536000'
    }
    config.assets.compile = false
    config.assets.digest = true

Auto-scaling

Your containers automatically scale based on traffic patterns:

  • Scale up: New container instances are provisioned when traffic increases

  • Scale down: Unused containers are gracefully terminated when traffic decreases

Enterprise Features

Have a unique need? Our enterprise features deliver additional capabilities:

  • Multi-region deployments: Deploy your containers to multiple geographic regions for global performance

  • Custom build configurations: Have a special need? We can customize our platform

  • Advanced security features: If you need SOC II, HIPAA, or FedRamp certified deployments

  • Dedicated support staff: Dedicated account manager and support engineers for your company's unique needs

Last updated