Object Relational Mapping
Creating Records
Reading Records
Updating Records
Deleting Records
Column Statistics
Dynamic Finders
Getting Paginated Data
Associations
Nested Properties
Object Validation
Object Callbacks
Calculated Properties
Transactions
Dirty Records
Soft Delete
Automatic Time Stamps
Using Multiple Data Sources
wheels docker init
This command works correctly without options (parameters). Option support is under development and will be available soon.
Initialize Docker configuration for your Wheels application.
Synopsis
wheels docker init [options]
Description
The wheels docker init
command creates Docker configuration files for containerizing your Wheels application. It generates a Dockerfile
, docker-compose.yml
, and supporting configuration files optimized for Wheels applications.
Options
| Option | Description | Default |
|--------|-------------|---------|
| --engine
| CFML engine (lucee5, lucee6, adobe2018, adobe2021, adobe2023) | lucee6
|
| --database
| Database system (mysql, postgresql, sqlserver, none) | mysql
|
| --port
| Application port | 8080
|
| --with-nginx
| Include Nginx reverse proxy | false
|
| --with-redis
| Include Redis for caching | false
|
| --production
| Generate production-ready configuration | false
|
| --force
| Overwrite existing Docker files | false
|
| --help
| Show help information |
Examples
Basic initialization
wheels docker init
Initialize with Adobe ColdFusion
wheels docker init --engine=adobe2023
Production setup with Nginx
wheels docker init --production --with-nginx --port=80
Initialize with PostgreSQL
wheels docker init --database=postgresql
Full stack with Redis
wheels docker init --with-nginx --with-redis --database=postgresql
What It Does
-
Creates Dockerfile optimized for CFML applications:
- Base image selection based on engine
- Dependency installation
- Application file copying
- Environment configuration
-
Generates docker-compose.yml with:
- Application service
- Database service (if selected)
- Nginx service (if selected)
- Redis service (if selected)
- Network configuration
- Volume mappings
-
Additional files:
.dockerignore
- Excludes unnecessary filesdocker-entrypoint.sh
- Container startup script- Configuration files for selected services
Generated Files
Dockerfile Example
FROM ortussolutions/commandbox:lucee5
# Set working directory
WORKDIR /app
# Copy application files
COPY . /app
# Install dependencies
RUN box install
# Expose port
EXPOSE 8080
# Start server
CMD ["box", "server", "start", "--console"]
docker-compose.yml Example
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
environment:
- WHEELS_ENV=development
- DB_HOST=database
depends_on:
- database
volumes:
- ./:/app
database:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=wheels
- MYSQL_DATABASE=wheels_app
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Configuration Options
Development Mode
- Hot reload enabled
- Source code mounted as volume
- Debug ports exposed
- Development databases
Production Mode
- Optimized image size
- Security hardening
- Health checks
- Restart policies
- Resource limits
Use Cases
- Local Development: Consistent development environment across team
- Testing: Isolated test environments with different configurations
- CI/CD: Containerized testing in pipelines
- Deployment: Production-ready containers for cloud deployment
Environment Variables
Common environment variables configured:
| Variable | Description |
|----------|-------------|
| WHEELS_ENV
| Application environment |
| WHEELS_DATASOURCE
| Database connection name |
| DB_HOST
| Database hostname |
| DB_PORT
| Database port |
| DB_NAME
| Database name |
| DB_USER
| Database username |
| DB_PASSWORD
| Database password |
Notes
- Requires Docker and Docker Compose installed
- Database passwords are set to defaults in development
- Production configurations should use secrets management
- The command detects existing Docker files and prompts before overwriting
See Also
- wheels docker deploy - Deploy using Docker
- wheels deploy - General deployment commands
- wheels ci init - Initialize CI configuration
- Synopsis
- Options
- Examples
- Basic initialization
- Initialize with Adobe ColdFusion
- Production setup with Nginx
- Initialize with PostgreSQL
- Full stack with Redis
- What It Does
- Generated Files
- Dockerfile Example
- docker-compose.yml Example
- Configuration Options
- Development Mode
- Production Mode
- Use Cases
- Environment Variables
- Notes
- See Also