Docker Compose Requirements
DeployStack is designed to work with Docker Compose files that meet specific requirements. This page outlines what we support and what limitations you need to be aware of.
Core Requirements
Your docker-compose.yml
file must:
- Use pre-built Docker images
- Reference public images from Docker Hub or another registries -> check Supported Registries
- Be a valid Docker Compose file (version 3 and above)
Your docker-compose file does not necessarily have to be called docker-compose.yml
and does not have to be located in the root directory. You can rename your docker compose file and store it in any sub directory.
If your docker compose file is not located in the root directory and has not docker-compose.yml
as the filename, you must submit the full path name to us by using the submit form deploystack.io/submit i.e.: https://github.com/vuejs/vitepress/tree/main/deployment/docker-compose.yaml
.
Image Requirements
Must Use Pre-built Images
Your services must specify the image
property. For example:
# ✅ Supported
services:
app:
image: nginx:latest
ports:
- "80:80"
Build Instructions Not Supported
We do not support services that use the build
directive:
# ❌ Not Supported
services:
app:
build:
context: ./build/app
dockerfile: Dockerfile
Why These Requirements?
The infrastructure templates we generate require specific, immutable container images to ensure consistent deployments. Cloud providers need to know exactly which image to pull, which is why we require pre-built images.
Supported Docker Compose Properties
We currently support these Docker Compose properties -> please check Supported Docker Compose Variables.
Multiple Services Support
DeployStack can handle Docker Compose files with multiple services, but support varies by cloud provider:
- Some providers support deploying all services at once
- Others will only deploy the first service in your compose file
Check the specific Multi Services Support for details about multi-service support.
Working with Private Images
Currently, DeployStack only supports public images from Docker Hub. If you need to use private images:
- Make your images public on Docker Hub or other supported registries
- Update your docker-compose.yml to reference the public images
- Submit your repository to DeployStack
Environment Variables
A few notes about environment variables:
- We support environment variables defined in your docker-compose.yml
- We do not process .env files
- Sensitive information should not be included in the docker-compose.yml
Validation
When you submit your repository, we perform these checks:
- Valid Docker Compose syntax
- Presence of required
image
property - Absence of unsupported features
Next Steps
- See how One-Click Deploy works
- Check the Troubleshooting guide if you run into issues