WorkflowGen PostgreSQL database with pgvector. Linux and Windows images for v10+.
3.0K
PostgreSQL 17 and 18 database images for WorkflowGen 10.5.0, with pgvector for AI and semantic search.
Select an explicit WorkflowGen version, PostgreSQL major and operating-system tag. The examples below use WorkflowGen 10.5.0 and persistent named volumes.
The 10.5.0 image definitions select PostgreSQL 17.11 or 18.6, with pgvector 0.8.7 on Linux and 0.8.6 on Windows.
PostgreSQL 17 and 18 images support Linux (Debian Bookworm) and Windows Server 2022 LTSC. Windows Server 2019 LTSC uses PostgreSQL 17; there is no PostgreSQL 18 LTSC2019 image.
This is currently the recommended production database for WorkflowGen v10 deployments.
pg_isreadyCreate a database.env file:
PGDATA=/var/lib/postgresql/data
POSTGRES_PASSWORD=yourStrong(!)Password
WFGEN_DATABASE_USER_PASSWORD=myDbPassword
WFGEN_ADMIN_PASSWORD=adminPassword
Run the container:
docker container run -d \
--env-file ./database.env \
--mount "type=volume,src=pgdata,dst=/var/lib/postgresql/data" \
--name wfgen-postgres \
-p 5432:5432 \
advantys/workflowgen-postgres:10.5.0-postgres17-debian-bookworm
Create a separate database18.env file with your own passwords:
PGDATA=/var/lib/postgresql/18/docker
POSTGRES_PASSWORD=yourStrong(!)Password
WFGEN_DATABASE_USER_PASSWORD=myDbPassword
WFGEN_ADMIN_PASSWORD=adminPassword
Use a new volume for this new installation:
docker container run -d \
--env-file ./database18.env \
--mount "type=volume,src=pgdata18,dst=/var/lib/postgresql" \
--name wfgen-postgres18 \
-p 5432:5432 \
advantys/workflowgen-postgres:10.5.0-postgres18-debian-bookworm
The two Linux examples both publish host port 5432. To run them together,
change one host port, for example -p 5433:5432. Do not attach a PostgreSQL 17
data volume to PostgreSQL 18; changing the image does not convert its data.
Create a database.env file:
PGDATA=C:\pgsql\data
POSTGRES_INITDB_ARGS=--username=postgres
POSTGRES_PASSWORD=yourStrong(!)Password
WFGEN_DATABASE_USER_PASSWORD=myDbPassword
WFGEN_ADMIN_PASSWORD=adminPassword
Run the container:
docker container run -d `
--env-file .\database.env `
--mount "type=volume,src=pgdata,dst=C:\pgsql\data" `
--name wfgen-postgres `
-p 5432:5432 `
advantys/workflowgen-postgres:10.5.0-postgres17-win-ltsc2022
For PostgreSQL 18 on Windows Server 2022 LTSC, use the same environment-file format with a new volume. The Windows data-directory path is unchanged:
docker container run -d `
--env-file .\database.env `
--mount "type=volume,src=pgdata18,dst=C:\pgsql\data" `
--name wfgen-postgres18 `
-p 5432:5432 `
advantys/workflowgen-postgres:10.5.0-postgres18-win-ltsc2022
These Windows examples both publish host port 5432. If running them together,
change one host port, for example -p 5433:5432.
For Windows Server 2019, use
advantys/workflowgen-postgres:10.5.0-postgres17-win-ltsc2019.
docker logs -f wfgen-postgres
# Look for: "Workflowgen database is ready"
After that message, press Ctrl+C to stop following logs; the container keeps running. The message confirms initialization is complete, but PostgreSQL may still be starting. Run a fresh TCP readiness check:
# Linux
docker exec wfgen-postgres pg_isready -h 127.0.0.1 -U postgres -d wfgen -t 2
# Windows
docker exec wfgen-postgres C:\pgsql\bin\pg_isready.exe -h 127.0.0.1 -U postgres -d wfgen -t 2
Continue only when it reports accepting connections with exit code 0.
If needed, repeat every two seconds for up to two minutes, then inspect the
logs if it still fails. Docker's health status alone is insufficient: it can
temporarily retain a successful check from initialization.
For the Linux PostgreSQL 18 example, use the container name
wfgen-postgres18 in monitoring and troubleshooting commands.
ltsc2019 image. Windows 10 does not support Windows Server 2022 container images.ltsc2022 images. Consult Microsoft's Windows container version compatibility matrix when the host and container versions differ.| Variable | Description |
|---|---|
POSTGRES_PASSWORD | PostgreSQL superuser password |
WFGEN_DATABASE_USER_PASSWORD | WorkflowGen database user password |
WFGEN_ADMIN_PASSWORD | WorkflowGen administrator password |
Linux PostgreSQL 17:
PGDATA=/var/lib/postgresql/data
Linux PostgreSQL 18:
PGDATA=/var/lib/postgresql/18/docker
The image supplies its major-specific PGDATA default. For PostgreSQL 18,
mount /var/lib/postgresql; do not copy the PostgreSQL 17 mount example.
On Linux, leave POSTGRES_INITDB_ARGS unset to inherit
--encoding=UTF8 --locale=C.UTF-8. Setting it in an environment file replaces
the entire value; it does not append arguments to the image defaults.
Windows:
PGDATA=C:\pgsql\data
POSTGRES_INITDB_ARGS=--username=postgres
| Variable | Default | Description |
|---|---|---|
WFGEN_DATABASE_NAME | WFGEN | Database name (becomes wfgen in lowercase) |
WFGEN_DATABASE_USER_USERNAME | wfgen_user | Database user name |
WFGEN_ADMIN_USERNAME | wfgen_admin | WorkflowGen admin username |
WFGEN_AUTH_APPLICATION | Y | Enable applicative authentication |
PGDATA | Image default for the selected platform/major | PostgreSQL data directory; use the matching persistent-volume mount |
POSTGRES_INITDB_ARGS | Image/initdb defaults | Optional initialization arguments for a new data directory |
Note: All environment variables support the _FILE suffix for Docker Secrets integration.
Mount /var/lib/postgresql/data to persist your PostgreSQL database:
# Named volume (recommended)
--mount "type=volume,src=pgdata,dst=/var/lib/postgresql/data"
# Or bind mount (if you need direct host access)
--mount "type=bind,src=/path/to/data,dst=/var/lib/postgresql/data"
Mount /var/lib/postgresql while keeping the image's
PGDATA=/var/lib/postgresql/18/docker default:
# New, separate volume for a new PostgreSQL 18 installation
--mount "type=volume,src=pgdata18,dst=/var/lib/postgresql"
Do not reuse data directories across PostgreSQL majors. Changing the tag or mount path does not convert database files.
Mount C:\pgsql\data to persist your PostgreSQL database:
# Named volume (recommended)
--mount "type=volume,src=pgdata,dst=C:\pgsql\data"
# Or bind mount (if you need direct host access)
--mount "type=bind,src=C:\path\to\data,dst=C:\pgsql\data"
For an image update within the same PostgreSQL major, back up the database, stop the old container cleanly, and create its replacement with the same volume and configuration. Do not run two PostgreSQL servers against the same data volume. Schema and PostgreSQL-major upgrades require their own upgrade procedure.
For WorkflowGen application configuration:
Host=wfgen-postgres;Port=5432;Database=wfgen;Username=wfgen_user;Password=<password>
Note: Use
Host=for PostgreSQL/Npgsql connections (notServer=).
The container includes built-in health monitoring:
docker inspect --format='{{.State.Health.Status}}' wfgen-postgres
healthy records a successful recent connection-readiness check; it is not
proof that initialization has completed or that PostgreSQL is accepting
connections now. Follow the initialization message with the fresh TCP check
above, then verify the WorkflowGen schema and application connection separately.
The pgvector extension is pre-installed and automatically enabled in the WorkflowGen database during initialization.
For an existing database, replacing the container does not automatically upgrade its registered vector extension. Check the installed extension version and follow the pgvector upgrade instructions after backing up and validating the new image with the existing data volume.
Verify pgvector is available:
Linux:
docker exec wfgen-postgres psql -U postgres -d wfgen -c "SELECT * FROM pg_extension WHERE extname = 'vector';"
Windows:
docker exec wfgen-postgres C:\pgsql\bin\psql.exe -U postgres -d wfgen -c "SELECT * FROM pg_extension WHERE extname = 'vector';"
This extension enables WorkflowGen v10+ AI features including:
Use a versioned tag for reproducible deployments. The leading version is WorkflowGen's release version; the database major and platform are part of the tag.
Choose the PostgreSQL major and platform explicitly:
| Version tag | PostgreSQL major | Platform |
|---|---|---|
10.5.0-postgres17-debian-bookworm | 17 | Linux Debian Bookworm |
10.5.0-postgres18-debian-bookworm | 18 | Linux Debian Bookworm |
10.5.0-postgres17-win-ltsc2019 | 17 | Windows Server 2019 LTSC |
10.5.0-postgres17-win-ltsc2022 | 17 | Windows Server 2022 LTSC |
10.5.0-postgres18-win-ltsc2022 | 18 | Windows Server 2022 LTSC |
The leading version identifies WorkflowGen; postgres17 or postgres18
identifies the database major. Existing 10.4.0 versioned images are retained.
Legacy 10.5.0 tags without a database major remain PostgreSQL 17 aliases:
10.5.0-postgres-debian-bookworm, 10.5.0-postgres-win-ltsc2019 and
10.5.0-postgres-win-ltsc2022.
Major-specific aliases follow updates within the selected PostgreSQL major:
| Platform | PostgreSQL 17 | PostgreSQL 18 |
|---|---|---|
| Linux | latest-postgres17-linux | latest-postgres18-linux |
| Windows Server 2022 LTSC | latest-postgres17-win-ltsc2022 | latest-postgres18-win-ltsc2022 |
| Windows Server 2019 LTSC | latest-postgres17-win-ltsc2019 | Not available |
For WorkflowGen 10.5.0, latest-linux and latest-win-ltsc2022 select
PostgreSQL 17. latest-win-ltsc2019 and its compatibility alias
postgres-latest also select PostgreSQL 17. Prefer an explicit major-specific
tag when automating updates, so your deployment does not depend on the
PostgreSQL major selected by a generic alias in a future release.
Publishing images does not update running containers. Clients using a moving
major-specific alias can automate updates within that PostgreSQL major by
pulling and recreating the container. Changing the PostgreSQL major requires an
explicit migration; pull/recreate does not perform it, and the 18 image refuses
an existing PostgreSQL 17 cluster. Pin a versioned major/platform tag to control
adoption. The repository does not publish a plain latest tag.
| Platform | Status | Notes |
|---|---|---|
| Linux (Debian Bookworm) | PostgreSQL 17 and 18 | Separate major-specific tags |
| Windows Server 2022 LTSC | PostgreSQL 17 and 18 | Separate major-specific tags |
| Windows Server 2019 LTSC | PostgreSQL 17 only | No PostgreSQL 18 variant |
For production deployments, use Docker Secrets or Kubernetes Secrets by appending _FILE to environment variable names:
# Create secrets
echo "yourStrong(!)Password" | docker secret create postgres_password -
echo "myDbPassword" | docker secret create wfgen_db_password -
echo "adminPassword" | docker secret create wfgen_admin_password -
# Create service with secrets
docker service create \
--name wfgen-postgres \
--secret postgres_password \
--secret wfgen_db_password \
--secret wfgen_admin_password \
-e POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password \
-e WFGEN_DATABASE_USER_PASSWORD_FILE=/run/secrets/wfgen_db_password \
-e WFGEN_ADMIN_PASSWORD_FILE=/run/secrets/wfgen_admin_password \
advantys/workflowgen-postgres:10.5.0-postgres17-debian-bookworm
# Create secrets
"yourStrong(!)Password" | docker secret create postgres_password -
"myDbPassword" | docker secret create wfgen_db_password -
"adminPassword" | docker secret create wfgen_admin_password -
# Create service with secrets
docker service create `
--name wfgen-postgres `
--secret postgres_password `
--secret wfgen_db_password `
--secret wfgen_admin_password `
-e POSTGRES_PASSWORD_FILE=C:\ProgramData\Docker\secrets\postgres_password `
-e WFGEN_DATABASE_USER_PASSWORD_FILE=C:\ProgramData\Docker\secrets\wfgen_db_password `
-e WFGEN_ADMIN_PASSWORD_FILE=C:\ProgramData\Docker\secrets\wfgen_admin_password `
advantys/workflowgen-postgres:10.5.0-postgres17-win-ltsc2022
docker logs wfgen-postgres
Linux:
docker exec -it wfgen-postgres psql -U postgres -d wfgen
Windows:
docker exec -it wfgen-postgres C:\pgsql\bin\psql.exe -U postgres -d wfgen
Run these after the initialization message and a successful fresh TCP readiness check described above.
Linux:
# Verify tables were created
docker exec wfgen-postgres psql -U postgres -d wfgen -c "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public';"
# Should return: 64
Windows:
docker exec wfgen-postgres C:\pgsql\bin\psql.exe -U postgres -d wfgen -c "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public';"
Linux:
docker exec wfgen-postgres psql -U postgres -d wfgen -c "SELECT USERNAME FROM USERS WHERE ID_USER = 1;"
Windows:
docker exec wfgen-postgres C:\pgsql\bin\psql.exe -U postgres -d wfgen -c "SELECT USERNAME FROM USERS WHERE ID_USER = 1;"
For technical support and questions:
This image includes:
See the WorkflowGen EULA for terms of use.
Content type
Image
Digest
sha256:af0ad9fa1…
Size
2.4 GB
Last updated
8 days ago
docker pull advantys/workflowgen-postgres:latest-postgres18-win-ltsc2022