Pre-configured SQL Server for WorkflowGen. v10 & v9 Linux production-ready. Windows dev/test only.
10K+
Pre-configured Microsoft SQL Server database ready for WorkflowGen deployments across all supported versions.
| Platform | SQL Server Edition | Production Status | Use Case |
|---|---|---|---|
| v10 Linux | SQL Server 2025 | ✅ Production-Ready | Production and development |
| v10 Windows (ltsc2019) | SQL Server 2025 Express | ⚠️ Development/Testing Only | Development and testing only |
| v9.3.1+ Linux | SQL Server 2022 | ✅ Production-Ready | Production and development |
| v9.3.0 and earlier Linux | SQL Server 2019 | ✅ Production-Ready | Production and development |
| v8 Linux | SQL Server 2019 | ✅ Production-Ready | Production and development |
| v9 Windows (ltsc2019/ltsc2022) | SQL Server Express 2017 | ⚠️ Development/Testing Only | Development and testing only |
| v8 Windows (ltsc2019) | SQL Server Express 2017 | ⚠️ Development/Testing Only | Development and testing only |
🚨 IMPORTANT - Production Readiness
- v10 Linux → ✅ Production-Ready (SQL Server 2025)
- v9.3.1+, v9.3.0, v8 Linux → ✅ Production-Ready (SQL Server 2019/2022)
- v10 Windows → ⚠️ Dev/Test Only (SQL Server 2025 Express, 50GB limit)
- v8, v9 Windows → ⚠️ Dev/Test Only (SQL Server Express 2017, 10GB limit)
Important: Always use a database image version that matches your WorkflowGen application version.
| WorkflowGen Version | Recommended Database Tag (Linux) | Windows Tag | Status |
|---|---|---|---|
| 10.3.0 | 10.3.0-ubuntu-24.04 | 10.3.0-express-win-ltsc2019 | ✅ Production (Linux) |
| 9.3.1+ | 9.6.0-ubuntu-22.04 | 9.6.0-express-win-ltsc2019 or 9.6.0-express-win-ltsc2022 | ✅ Production (Linux) |
| 9.3.0 and earlier | {version}-ubuntu-18.04 | {version}-express-win-ltsc2019 | ✅ Supported |
| 8.x | {version}-ubuntu-18.04 | {version}-express-win-ltsc2019 | ✅ Supported |
⚠️ WorkflowGen v7.x is deprecated. While v7.x database images remain available on Docker Hub, they are no longer actively supported. Please upgrade to v8.x or v9.x.
Example tags: 10.3.0-ubuntu-24.04 (v10 Linux), 10.3.0-express-win-ltsc2019 (v10 Windows), 9.6.0-ubuntu-22.04 (v9 production)
ltsc2019 or ltsc2022)docker volume create wfgen-sql-data
docker run -d --name wfgen-sql --env-file ./database.env \
-v wfgen-sql-data:/var/opt/mssql -p 1433:1433 \
advantys/workflowgen-sql:10.3.0-ubuntu-24.04
⚠️ NOT FOR PRODUCTION - Express Edition has limitations (50GB database size limit, 1 CPU, 1.4GB RAM). Use Linux image for production.
docker volume create wfgen-sql-data
docker run -d --name wfgen-sql --env-file .\database.env `
-v wfgen-sql-data:C:\wfgen\sql -p 1433:1433 `
advantys/workflowgen-sql:10.3.0-express-win-ltsc2019
docker volume create wfgen-sql-data
docker run -d --name wfgen-sql --env-file ./database.env \
-v wfgen-sql-data:/var/opt/mssql -p 1433:1433 \
advantys/workflowgen-sql:9.6.0-ubuntu-22.04
Other versions: 9.2.11-ubuntu-18.04 (v9 SQL 2019), 8.3.5-ubuntu-18.04 (v8 SQL 2019)
- Check the version compatibility matrix for your specific version.
# Create volume for database persistence
docker volume create wfgen-sql-data
# Run container (examples: 9.6.0 or 8.3.5)
docker run -d `
--name wfgen-sql `
--env-file .\database.env `
-v wfgen-sql-data:C:\wfgen\sql `
-p 1433:1433 `
advantys/workflowgen-sql:9.6.0-express-win-ltsc2019
# Or, for Windows Server 2022:
# advantys/workflowgen-sql:9.6.0-express-win-ltsc2022
# Or for v8:
# advantys/workflowgen-sql:8.3.5-express-win-ltsc2019
All images require the following environment variables:
| Variable | Description | Required |
|---|---|---|
ACCEPT_EULA | Accept SQL Server EULA (Y or N) | ✅ Yes (Linux only) |
SA_PASSWORD | SQL Server SA account password (see password requirements) | ✅ Yes |
WFGEN_DATABASE_USER_PASSWORD | WorkflowGen database user password | ✅ Yes |
MSSQL_PID | SQL Server edition (see edition table) | ⚠️ Recommended for v10 Linux |
Notes:
ACCEPT_EULAis required for Linux images only (Microsoft requirement). Windows images have SQL Server pre-installed.SA_PASSWORDis required for both Linux and Windows images.MSSQL_SA_PASSWORDis also supported as an alias forSA_PASSWORD.
| Variable | Description | Default |
|---|---|---|
WFGEN_DATABASE_NAME | WorkflowGen database name | WFGEN |
WFGEN_DATABASE_CONTAINMENT | Enable contained database users (Y or N) | Y |
WFGEN_DATABASE_USER_USERNAME | WorkflowGen database user username | WFGEN_USER |
WFGEN_DATABASE_FILE_PATH | Path to database files inside container | Windows: C:\wfgen\sqlLinux: /var/opt/mssql |
WFGEN_ADMIN_USERNAME | WorkflowGen admin username | wfgen_admin |
WFGEN_ADMIN_PASSWORD | WorkflowGen admin password | (none) |
WFGEN_AUTH_APPLICATION | Use WorkflowGen applicative auth (Y or N) | Y |
For v10 Linux only - Choose your SQL Server edition based on your use case:
| Edition | Value | Use Case | Cost | Production |
|---|---|---|---|---|
| Developer | Developer | Development & Testing | FREE | ❌ Not licensed |
| Express | Express | Production | FREE | ✅ Yes |
| Enterprise | Enterprise | Production | Requires license | ✅ Yes |
Important Notes:
MSSQL_PID is not specified, SQL Server defaults to Developer edition (Microsoft default)Express (free) or Enterprise (requires license)Developer is recommended (it's the default)Example for Linux v10:
# database.env for Linux
SA_PASSWORD=yourStrong(!)Password
WFGEN_DATABASE_USER_PASSWORD=myStrong(?)Password
ACCEPT_EULA=Y
MSSQL_PID=Express # Free for production use
Use these connection strings in your WorkflowGen container (works on both Linux and Windows):
Recommended (WFGEN_USER account):
WFGEN_DATABASE_CONNECTION_STRING=Data Source=wfgen-sql;Initial Catalog=WFGEN;User ID=WFGEN_USER;Password=<your-password>;TrustServerCertificate=True
Using SA account (not recommended for production):
WFGEN_DATABASE_CONNECTION_STRING=Data Source=wfgen-sql;Initial Catalog=WFGEN;User ID=sa;Password=<SA-password>;TrustServerCertificate=True
Note:
TrustServerCertificate=Trueis required for SQL Server 2025 (both Linux and Windows) due to enforced SSL encryption with self-signed certificates.
To connect with SQL Server Management Studio, Azure Data Studio, or other tools:
localhost,1433 or 127.0.0.1,1433sa (or WFGEN_USER)WFGENFor production deployments, use Docker Secrets or Kubernetes Secrets to protect sensitive information.
# Create secrets
echo "yourStrong(!)Password" | docker secret create SA_PASSWORD -
echo "myStrong(?)Password" | docker secret create WFGEN_DATABASE_USER_PASSWORD -
# Create service with secrets
docker service create \
--name wfgen-sql \
--secret SA_PASSWORD \
--secret WFGEN_DATABASE_USER_PASSWORD \
-e SA_PASSWORD_FILE=/run/secrets/SA_PASSWORD \
-e WFGEN_DATABASE_USER_PASSWORD_FILE=/run/secrets/WFGEN_DATABASE_USER_PASSWORD \
-e ACCEPT_EULA=Y \
advantys/workflowgen-sql:9.6.0-ubuntu-22.04
# Create secrets
docker secret create SA_PASSWORD "yourStrong(!)Password"
docker secret create WFGEN_DATABASE_USER_PASSWORD "myStrong(?)Password"
# Create service with secrets
docker service create `
--name wfgen-sql `
--secret SA_PASSWORD `
--secret WFGEN_DATABASE_USER_PASSWORD `
-e SA_PASSWORD_FILE=C:\ProgramData\Docker\secrets\SA_PASSWORD `
-e WFGEN_DATABASE_USER_PASSWORD_FILE=C:\ProgramData\Docker\secrets\WFGEN_DATABASE_USER_PASSWORD `
-e ACCEPT_EULA=Y `
advantys/workflowgen-sql:9.6.0-express-win-ltsc2019
Important: Environment variables ending with
_FILEand their non-_FILEcounterparts are mutually exclusive. If both are defined, the container will fail to start.
Create a database.env file with your configuration:
# Required
SA_PASSWORD=yourStrong(!)Password
WFGEN_DATABASE_USER_PASSWORD=myStrong(?)Password
# Required for Linux only
ACCEPT_EULA=Y
# Recommended for v10 Linux (specify SQL Server edition)
MSSQL_PID=Developer
# Optional
WFGEN_DATABASE_CONTAINMENT=Y
WFGEN_DATABASE_USER_USERNAME=WFGEN_USER
WFGEN_ADMIN_USERNAME=wfgen_admin
WFGEN_ADMIN_PASSWORD=admin123
WFGEN_AUTH_APPLICATION=Y
Then use it with --env-file:
# v10 Linux
docker run -d --env-file ./database.env advantys/workflowgen-sql:10.3.0-ubuntu-24.04
# v9 Linux
docker run -d --env-file ./database.env advantys/workflowgen-sql:9.6.0-ubuntu-22.04
# v8/v9 Windows
docker run -d --env-file .\database.env advantys/workflowgen-sql:9.6.0-express-win-ltsc2019
| Container Path | Description |
|---|---|
/var/opt/mssql | SQL Server data directory (includes all databases) |
Example:
# Using named volume (recommended)
docker volume create wfgen-sql-data
docker run -d -v wfgen-sql-data:/var/opt/mssql advantys/workflowgen-sql:10.3.0-ubuntu-24.04
# Using bind mount
docker run -d -v /host/path/to/mssql:/var/opt/mssql advantys/workflowgen-sql:9.6.0-ubuntu-22.04
| Container Path | Description |
|---|---|
C:\wfgen\sql | WorkflowGen database files (WFGEN.mdf and WFGEN_Log.ldf) |
Example:
# Using named volume (recommended)
docker volume create wfgen-sql-data
# v10 (SQL Server 2025)
docker run -d -v wfgen-sql-data:C:\wfgen\sql advantys/workflowgen-sql:10.3.0-express-win-ltsc2019
# v9 (SQL Server 2017/2022)
docker run -d -v wfgen-sql-data:C:\wfgen\sql advantys/workflowgen-sql:9.6.0-express-win-ltsc2019
# Using bind mount
docker run -d -v C:\host\path:C:\wfgen\sql advantys/workflowgen-sql:9.6.0-express-win-ltsc2019
⚠️ Important: Always map volumes to persist your data. Without volume mapping, all data will be lost when the container is removed.
# Interactive PowerShell session
docker exec -it wfgen-sql pwsh
# Execute single command
docker exec wfgen-sql pwsh -Command "Get-Date"
# Interactive PowerShell session
docker exec -it wfgen-sql powershell
# Execute single command
docker exec wfgen-sql powershell -Command "Get-Date"
# Interactive bash session
docker exec -it wfgen-sql bash
# Execute single command
docker exec wfgen-sql bash -c "ls -la /var/opt/mssql"
# v10 Linux
docker run -d -p 1433:1433 --env-file ./database.env advantys/workflowgen-sql:10.3.0-ubuntu-24.04
# v9 Linux
docker run -d -p 1433:1433 --env-file ./database.env advantys/workflowgen-sql:9.6.0-ubuntu-22.04
# v10 Windows
docker run -d -p 1433:1433 --env-file .\database.env advantys/workflowgen-sql:10.3.0-express-win-ltsc2019
# v8/v9 Windows
docker run -d -p 1433:1433 --env-file .\database.env advantys/workflowgen-sql:9.6.0-express-win-ltsc2019
Note: If SQL Server is already running on the host on port 1433, map to a different port:
docker run -d -p 1434:1433 ... advantys/workflowgen-sql:10.3.0-ubuntu-24.04Then connect to
localhost,1434
# Stop container (preserves data if volumes are mapped)
docker stop wfgen-sql
# Start existing container
docker start wfgen-sql
# Restart container
docker restart wfgen-sql
# Remove container (data persists in volumes)
docker rm wfgen-sql
# View container logs
docker logs wfgen-sql
# Follow logs in real-time
docker logs -f wfgen-sql
# View last 100 lines
docker logs --tail 100 wfgen-sql
# Check container status
docker ps --filter name=wfgen-sql
# Verify database is accessible
docker exec wfgen-sql pwsh -Command "Invoke-Sqlcmd -Query 'SELECT DB_NAME()' -Database WFGEN -ServerInstance localhost"
# Verify WorkflowGen tables exist (should return 55+ tables)
docker exec wfgen-sql pwsh -Command "Invoke-Sqlcmd -Query 'SELECT COUNT(*) AS TableCount FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''dbo''' -Database WFGEN -ServerInstance localhost"
# Check admin user
docker exec wfgen-sql pwsh -Command "Invoke-Sqlcmd -Query 'SELECT TOP 1 USERNAME FROM USERS WHERE ID_USER = 1' -Database WFGEN -ServerInstance localhost"
# Linux - Backup to container
docker exec wfgen-sql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P '<SA_PASSWORD>' \
-Q "BACKUP DATABASE [WFGEN] TO DISK = N'/var/opt/mssql/backup/WFGEN.bak' WITH NOFORMAT, NOINIT, NAME = 'WFGEN-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
# Copy backup to host
docker cp wfgen-sql:/var/opt/mssql/backup/WFGEN.bak ./WFGEN_backup.bak
# Windows (v8, v9) - Backup to container
docker exec wfgen-sql powershell -Command "Invoke-Sqlcmd -Query \"BACKUP DATABASE [WFGEN] TO DISK = N'C:\wfgen\sql\WFGEN.bak'\" -ServerInstance localhost -Username sa -Password '<SA_PASSWORD>'"
# Copy backup to host
docker cp wfgen-sql:C:\wfgen\sql\WFGEN.bak .\WFGEN_backup.bak
# Linux - Copy backup to container
docker cp ./WFGEN_backup.bak wfgen-sql:/var/opt/mssql/backup/
# Restore database
docker exec wfgen-sql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P '<SA_PASSWORD>' \
-Q "RESTORE DATABASE [WFGEN] FROM DISK = N'/var/opt/mssql/backup/WFGEN_backup.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
{version}-ubuntu-{ubuntu_version}
ubuntu-24.04 (e.g., 10.3.0-ubuntu-24.04)ubuntu-22.04 (e.g., 9.6.0-ubuntu-22.04)ubuntu-18.04 (e.g., 9.2.11-ubuntu-18.04, 8.3.5-ubuntu-18.04){version}-express-win-ltsc2019 or {version}-express-win-ltsc2022 where available
10.3.0-express-win-ltsc2019)9.6.0-express-win-ltsc2019, 9.6.0-express-win-ltsc2022, 8.3.5-express-win-ltsc2019)Latest Versions:
| WorkflowGen Series | Latest Tag (Linux) | Latest Tag (Windows) | Status |
|---|---|---|---|
| v10 | 10.3.0-ubuntu-24.04 | 10.3.0-express-win-ltsc2019 | ✅ Production (Linux) |
| v9.6 | 9.6.0-ubuntu-22.04 | 9.6.0-express-win-ltsc2019 or 9.6.0-express-win-ltsc2022 | ✅ Production (Linux) |
| v9.2 | 9.2.11-ubuntu-18.04 | 9.2.11-express-win-ltsc2019 | ✅ Supported |
| v9.1 | 9.1.1-ubuntu-18.04 | 9.1.1-express-win-ltsc2019 | ✅ Supported |
| v9.0 | 9.0.7-ubuntu-18.04 | 9.0.7-express-win-ltsc2019 | ✅ Supported |
| v8.3 | 8.3.5-ubuntu-18.04 | 8.3.5-express-win-ltsc2019 | ✅ Supported |
| v8.2 | 8.2.4-ubuntu-18.04 | 8.2.4-express-win-ltsc2019 | ✅ Supported |
| v8.1 | 8.1.3-ubuntu-18.04 | 8.1.3-express-win-ltsc2019 | ✅ Supported |
| v8.0 | 8.0.12-ubuntu-18.04 | 8.0.12-express-win-ltsc2019 | ✅ Supported |
⚠️ Note: WorkflowGen v7.x is deprecated and no longer supported. v7.x database images remain available on Docker Hub for legacy deployments, but we strongly recommend upgrading to v8.x or v9.x.
Default Tag:
latest → Currently points to 9.6.0-ubuntu-22.04Recommendation: Always use specific version tags (e.g.,
10.3.0-ubuntu-24.04,9.6.0-ubuntu-22.04) for reproducibility.
To see all available tags, visit:
WorkflowGen v10 uses SQL Server 2025 which includes:
| Platform | Edition | Licensing | Notes |
|---|---|---|---|
| Linux | Developer (default) | FREE for dev/test | Configurable via MSSQL_PID env var |
| Linux | Express | FREE for production | Set MSSQL_PID=Express |
| Linux | Enterprise | Requires license | Set MSSQL_PID=Enterprise |
| Windows | Express | FREE | Fixed in image, cannot be changed |
Note:
- Linux images are production-ready with SQL Server 2025. Use
MSSQL_PID=Express(free) orMSSQL_PID=Enterprise(requires license) for production.- Windows images use Express Edition (50GB database size limit, 1 CPU, 1.4GB RAM) and are intended for development/testing only.
- For production, you can also use PostgreSQL (advantys/workflowgen-postgres) which is production-ready for v10+.
SQL Server enforces password complexity requirements:
Example strong passwords:
yourStrong(!)PasswordMyP@ssw0rd2024Secure#Pass123Check logs:
docker logs wfgen-sql
Common causes:
ACCEPT_EULA not set to YSA_PASSWORD doesn't meet complexity requirementsVerify container is running:
docker ps --filter name=wfgen-sql
Check if port is exposed:
docker port wfgen-sql
Test connection from inside container:
docker exec wfgen-sql pwsh -Command "Invoke-Sqlcmd -Query 'SELECT @@VERSION' -ServerInstance localhost"
Common issues:
TrustServerCertificate=True missing from connection stringWait for initialization message:
docker logs -f wfgen-sql
Look for: Workflowgen database is ready.
Initialization typically takes 30-90 seconds on first start depending on system performance.
Verify initialization completed:
# Should return approximately 55 tables
docker exec wfgen-sql pwsh -Command "Invoke-Sqlcmd -Query 'SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''dbo''' -Database WFGEN"
The Windows image uses SQL Server Express 2017 which has limitations:
Solution: Migrate to the Linux image for better performance and no limitations.
By using this image, you agree to the:
For SQL Server licensing information, visit Microsoft SQL Server Licensing.
10.3.0-ubuntu-24.04 is production-ready with SQL Server 2025 GANote: Windows SQL Server images use Express Edition and are intended for development and testing only.
Content type
Image
Digest
sha256:82a2bec5d…
Size
718.1 MB
Last updated
about 1 month ago
docker pull advantys/workflowgen-sql