Environment Variables in DeployStack
DeployStack supports environment variables for your Docker configurations through the .deploystack/env file. This allows you to manage configuration values separately from your Docker files and maintain consistency across deployments.
Adding Environment Variables
Create an env file in your .deploystack directory:
your-repository/
├── .deploystack/
│ ├── env
└── README.mdYour env file should follow the standard environment file format:
# .deploystack/env
DB_USERNAME=myuser
DB_PASSWORD=mysecretpassword
DB_DATABASE=mydatabaseUsing Environment Variables
In Docker Compose
Reference environment variables in your docker-compose.yml using the ${VARIABLE_NAME} syntax:
services:
db:
image: mariadb:11.2
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
MYSQL_DATABASE: ${DB_DATABASE}In Docker Run Commands
For docker-run.txt, use the same variable syntax:
docker run -d \
-e MYSQL_ROOT_PASSWORD=${DB_PASSWORD} \
-e MYSQL_USER=${DB_USERNAME} \
-e MYSQL_DATABASE=${DB_DATABASE} \
mariadb:11.2Default Values
DeployStack supports Docker's default value syntax for environment variables. This provides fallback values when variables are not defined.
Syntax
Use ${VARIABLE:-default} where:
VARIABLEis your environment variable namedefaultis the fallback value
Examples
# docker-compose.yml
services:
web:
image: nginx:alpine
environment:
PORT: ${PORT:-8080}
NODE_ENV: ${NODE_ENV:-development}# docker-run.txt
docker run -d \
-e PORT=${PORT:-8080} \
-e NODE_ENV=${NODE_ENV:-development} \
nginx:alpineEnvironment Variable Processing
When DeployStack processes your repository:
- Variables defined in
.deploystack/envare read - These values replace matching
${VARIABLE}placeholders - For undefined variables:
- If a default value is specified (
${VARIABLE:-default}), it's used - Otherwise, an empty string is used
- If a default value is specified (
Important Notes
- The
envfile is optional - Keep sensitive information out of version control
- Variable names are case-sensitive
- Default values provide fallbacks but don't expose sensitive data
- Environment variables in your Docker configuration must use the
${VARIABLE}syntax
Limitations
- Basic environment variable substitution only
- No variable expansion or shell-style manipulation
- Cannot reference other variables within values
- No built-in encryption for sensitive values
Docker Compose Requirements
Technical requirements for using Docker Compose with DeployStack's cloud deployment automation. Includes supported properties, registry options, and validation rules.
GitHub Application
Keep Docker configurations and deployment templates in sync with DeployStack's GitHub App. Updates templates automatically when files change.