Stackmate supports Docker container images deployment on managed container services, like AWS ECS
- A managed container service running the container
imagespecified with thecpuandmemoryrestrictions you've applied. The service will run on theportspecified in the configuration - A DNS record to the value set as your
domainin the configuration - A load balancer routing HTTP and HTTPS traffic to the container
- An SSL certificate for the domain name(s) specified
type- string - It should be set toapplicationimage- string - The docker image to run, for examplestackmate/sample-nodejs-app:latest. It should be anything that Docker can pull from (for example a public DockerHub repository)port- number / Optional for non-web services - The port that your web application runs on. If your application doesn't expose a port (for example it's a backend worker or something similar), feel free to leave this empty
cpu- number - The vCPU units that your container runs on. Acceptable values are:0.25,0.5,1,2,4,8and16.memory- number - The GB of memory available that the container runs on. You can use0.5and any integer value between1and120but please keep in mind that cloud providers might introduce some restrictions:- Available AWS CPU and Memory combinations
domain- string - The domain name to use for your service. It can be both top-level domains (eg. stackmate.io) or subdomains (eg. app.stackmate.io)www- boolean - Whether to add another DNS record that starts withwww(eg. www.stackmate.io). Please note: This only applies when using a top-level domain name asdomain(like eg. stackmate.io)
{% code title=".stackmate/config.yml" %}
---
state:
bucket: ...
lockTable: ...
environments:
production:
nodejs-app:
type: application
image: stackmate/sample-nodejs-app:latest
cpu: 0.5
memory: 1
port: 3000
domain: stackmate.io
# provider: aws # implied, since aws is the default provider{% endcode %}
The example above will run a container of 0.5 vCPU, 1 GB of memory, that will expose port 3000 on AWS ECS Fargate. It will also create an application load balancer that will forward traffic to the container, using an auto-generated SSL certificate via ACM for stackmate.io. Finally, there will be a DNS record on Route53 with stackmate.io as the domain name, targeting the load balancer.