Docker: 4. Create the service

This documentation is part of the Automate with the CLI guide. You can view the complete guide here: Start Docker, retrieve its credentials, and modify its configuration programmatically using the Stackhero CLI.

Welcome to the Stackhero documentation

Stackhero offers a ready-to-use Docker cloud CaaS (Containers as a Service) platform, designed for fast and reliable container deployments:

  • Deploy to production with a single docker-compose up command. No additional configuration is required: simply start your containers.
  • Choose your own domain name, automatically secured with HTTPS (for example: https://api.your-company.com, https://www.your-company.com, or https://backoffice.your-company.com).
  • Benefit from high performance and enhanced security on private, dedicated infrastructure.
  • Apply updates with a single click for straightforward, effortless maintenance.

Your containers can be live in production in around five minutes. Stackhero manages the infrastructure, updates, and security for you, so you can focus on developing your applications. Find out more about Docker CaaS cloud hosting.

Below is an example script that creates a stack, adds your Docker service to it, waits for it to start, retrieves its configuration (including generated credentials), and then applies a new configuration.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="docker"   # The Docker service store name (see step 2)
instance="..."                # An instance size from step 3
region="europe"               # A region name from step 3

# Create a stack for your service (uses your default organisation; add --organization if needed)
stackId=$(stackhero --format=script stack-create \
  --name="My Docker stack")
echo "Stack created: ${stackId}"

# Add Docker to the stack (names are resolved automatically)
serviceId=$(stackhero --format=script service-add \
  --stack="My Docker stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Service added: docker"

# Wait for the service to be fully operational (this may take a few minutes)
stackhero service-wait-for --service="docker"

# Retrieve the service configuration, including generated credentials
stackhero service-configuration-get --service="docker" --format=json