EN
Log in Create an account

How to deploy Docker on Saplo (custom image or docker-compose)

Docker is the most flexible option in the Saplo catalog - you provide your own Dockerfile or docker-compose.yml, and Saplo builds and runs the image. If an application isn't available as a ready-made recipe but has an official Docker image, you'll likely deploy it here.

Grzegorz Kalmus ·

Docker isn't a specific tech stack, but a runtime environment - you provide your own Dockerfile or docker-compose.yml, and Saplo builds the image and runs it. This is the most flexible option in the entire catalog: if an application isn't available as a ready-made recipe (Ghost, n8n, WordPress, and others), but has an official Docker image or a compose file, you'll probably set it up here, without waiting for Saplo to add a dedicated recipe.

Who is Docker on Saplo for?

Before you start the installation, check if it's the right choice for your project:

  • application with a ready-to-use Docker image - the tool you want to run publishes an official image on Docker Hub or GHCR,
  • multiple services in one docker-compose file - application plus database, cache, or worker in one docker-compose.yml,
  • a tool not available in the catalog as a separate recipe - Docker provides access to any software with an image, without waiting for a dedicated recipe,
  • you have a project with your own Dockerfile and want full control over the runtime environment - dependencies, system library versions, you define everything yourself.

If your project is Django with a ready-to-use Dockerfile, also consider the dedicated Django stack - Saplo will build it natively (gunicorn, nginx for static files) without the need to write your own image.

Requirements

To run Docker on Saplo, you need:

  • A Box on the L plan or higher - building an image requires more resources than a standard static build, and LXC must have the Docker daemon running (nesting=1).
  • A minimum of 512 MB of free RAM and 3 GB of disk space for the starter alone; heavier images and builds require more.
  • A domain or subdomain *.saploapp.pl included with every plan.
  • A Git repository if you want to use automatic deployment (optional to start, you can also upload the application as a .zip archive via the panel).

Step-by-step installation

  1. In the Saplo panel, go to App catalog and select Docker (under "Applications").
  2. Select a Box on plan L or higher and the application name - a default subdomain will be created from it.
  3. Confirm the installation. The engine installs Docker CE and the Docker Compose plugin on your Box if they are not already there.
  4. A docker-compose.yml starter is created with the nginxdemos/hello image mapped to the application port, launched with the restart: unless-stopped option - so you have something to see under the domain right away, before you deploy your own project.
  5. After the installation is complete, the domain from step 2 shows a running starter container - from this point, you replace it with your own image or compose file.

Deploy your own code via Git

  1. In the app details, find the Git / CI-CD section and click "Connect GitHub", confirm the installation of the "Saplo Deploy" app, and select the repository with your project.
  2. In the repository, place Dockerfile at the root of the project, or docker-compose.yml if the application consists of several services - Saplo detects which variant is in the repo and builds accordingly.
  3. In the saplo.yaml file, specify the port on which your application listens using the expose field - nginx will direct traffic from 80/443 to it.
  4. Commit and push changes to the production branch (default is main). Each subsequent git push builds a new image and replaces the container.
  5. The image is built directly in your Box - heavier builds (large dependencies, native compilation) require a higher plan.

Example of a minimal saplo.yaml file for Docker:

name: my-project
stack: docker
expose: 8080

Docker on Saplo vs. Alternatives

Your own VPS with Docker Railway / Render (deploy from Dockerfile) Docker on Saplo
Docker daemon configuration you do it yourself fully managed pre-installed, engine adds missing components
Deployments from Git you have to set it up yourself (CI/CD, webhooks) yes, natively yes, git push to the production branch
Billing fixed server cost resource usage, grows with traffic fixed Box cost
Multiple services in one project (compose) you configure it yourself usually limited to one container docker-compose.yml detected automatically

FAQ

Dockerfile or docker-compose - which one to choose? Both work. Dockerfile is enough for a single service, choose docker-compose when your application needs several containers together, e.g., a service plus Redis.

Can I have multiple containers in one compose file? Yes, the entire docker-compose.yml file runs together, maintaining the network between services.

Is the image built on my Box, or externally? On your Box - hence the higher plan requirements for heavier builds than for simple static sites.

What about data that needs to survive a container restart? Volumes work as in regular Docker. Remember to enable backup in the application settings if the data needs to be protected.

Will I get SSL and my own domain? Yes, the SSL certificate is automatic, and a domain or subdomain *.saploapp.pl is included with every plan.

With Saplo, you can set up Docker from scratch to a working domain in minutes, and each subsequent git push builds a new image and replaces the container without your involvement. If you're looking for a specific tool with a Docker image that isn't yet available as a ready-made recipe in the catalog, this is the fastest way to get it running.

  • #Docker
  • #Docker Compose
  • #Git Deploy
  • #Guide