Running Local Development Servers
Wheels uses a Docker-based development environment that provides consistent, containerized development with support for multiple CFML engines and databases.
Prerequisites
Docker: Install Docker Desktop from docker.com
Wheels CLI: Install the Wheels CommandBox module:
box install wheels-cli
Setting up Docker Development Environment
Ensure you are in the application root directory.
Initialize your Docker development environment:
wheels docker init cfengine=adobe cfversion=2018 db=mysql
Command Options
cfengine options:
lucee
- Lucee CFML engineadobe
- Adobe ColdFusion
cfversion options:
Major versions for Adobe ColdFusion:
2018
,2021
,2023
,2025
Major versions for Lucee:
5
,6
db options:
mysql
- MySQL databasepostgres
- PostgreSQL databasemssql
- Microsoft SQL Serverh2
- H2 embedded database
Generated Files
The wheels docker init
command creates several files in your project:
.dockerignore
- Specifies files to exclude from Docker build contextDockerfile
- Container definition for your chosen CFML enginedocker-compose.yml
- Multi-container application definitionCFConfig.json
- CFML engine configuration with datasource setup
Starting Your Development Environment
After running the init command, start your containers:
docker-compose up -d
The containers will take a few minutes to start the first time as Docker downloads the necessary images. Once started, your application will be available at:
Default:
http://localhost:8080
Custom port: Check your
server.json
file for the configured port
Managing Your Docker Environment
# Stop the containers
docker-compose down
# View running containers
docker-compose ps
# View container logs
docker-compose logs
# Rebuild and restart
docker-compose up -d --build
Additional Configuration
Custom Ports
The default port is 8080, but you can customize this by modifying the server.json
:
{
"name":"wheels",
"web":{
"host":"localhost",
"http":{
"port":3000
},
"webroot":"public",
"rewrites":{
"enable":true,
"config":"public/urlrewrite.xml"
}
}
}
Database Configuration
The generated CFConfig.json
file automatically configures a datasource for your chosen database. The configuration includes:
Connection settings for your selected database type
Default datasource named
wheels-dev
Appropriate drivers for the database engine
Development Workflow
Make code changes in your directory
Changes are reflected immediately due to Docker volume mounting
Database changes persist between container restarts
Use standard Wheels commands like migrations, generators, etc.
Troubleshooting
Containers won't start:
# Check if ports are in use
docker-compose ps
netstat -an | grep 8080
# Force recreate containers
docker-compose down
docker-compose up -d --force-recreate
Database connection issues:
# Check database container logs
docker-compose logs db
# Restart just the database
docker-compose restart db
Performance issues:
Ensure Docker Desktop has adequate memory allocated (4GB+ recommended)
On Windows/Mac, enable file sharing for your project directory
Last updated
Was this helpful?