Deploy your services to AWS ECS from your docker-compose files in 3 steps
- Step 1. Install ECS Compose-x
- Step 2. Use your existing docker-compose files. Optionally, add Compose-X extensions.
- Step 3. Deploy to AWS via CloudFormation.
- Automatically deploy applications to AWS using existing docker-compose files
- Deploys multiple applications to AWS in a single command
- Creates AWS resources such as EC2 Instances, ECS Clusters and Containers
- Automatically configures IAM roles and Networking for secure and reliable access
- Expand the definitions with AWS CloudFormation resources
- Allows to use existing resources in your AWS Account
- Can be extended with custom modules/hooks to customize the deployment process
- Automatically rolls back the application in case of errors, to previous version or to a stable state
Note
Python 3.12+ Users: Due to a dependency issue with flatdict 4.0.1, you may need to install it separately first.
A pre-built wheel is provided in the vendor-wheels/ directory of this repository.
# Inside a python virtual environment
python3 -m venv venv
source venv/bin/activate
pip install pip setuptools -U
# For Python 3.12+, install flatdict first using the provided wheel
pip install vendor-wheels/flatdict-4.0.1-py3-none-any.whl # If installing from repository
pip install ecs-composex
# For your user only
pip install --upgrade setuptools
pip install ecs-composex --user# Get all the options
ecs-compose-x -h
# Simple example using docker-compose file and an extension with your AWS Settings
ecs-compose-x render -d templates -n my-new-stack -f docker-compose.yaml -f aws-settings.yaml