KNetraHub Docker worker: background jobs only, no HTTP endpoint.
727
Docker worker ā the background half of Docker.
KNetraHub is a self-hosted IT operations portal: a Docker Swarm console, full-stack monitoring, work management, privileged access management, IP address management and a database workspace, behind one sign-in. It ships two ways ā as a single monolith image, or as the split stack of one image per service that this image belongs to.
š Documentation: https://sengphirum.github.io/KNetraHub/documentationā
Docker alert poller, service/task lifecycle history and the autoredeploy digest check ā cluster-leased singletons.
It bundles the server code of docker and nothing else, so the image carries only the module it is named after.
Runs no HTTP listener at all. It claims work from a durable queue with FOR UPDATE SKIP LOCKED and, for the jobs that must run once cluster-wide, a lease that one replica holds at a time ā so replicas cooperate instead of duplicating. On SIGTERM it stops claiming, finishes what it already holds and hands the rest back to the queue, which is why its stop_grace_period is generous.
The ingress never routes to it and it answers no request. Losing it delays work; it does not fail a page load.
Every service in the split stack runs unprivileged with cap_drop: [ALL]. This one additionally needs the Docker socket, because the Docker Engine API is the module.
| Image | Serves HTTP | Runs background jobs | Scale it with |
|---|---|---|---|
knetrahub-docker-worker (this image) | no | yes | job volume |
knetrahub-docker-apiā | yes | no | request load |
knetrahub-appā | yes | yes | nothing ā it is one process |
Scale this with job volume. The matching docker-api image handles the requests, and the two scale on completely different signals.
Read straight from the stack file that deploys this service, so the list is what the image actually takes. Optional entries ship commented out.
| Variable | Default | |
|---|---|---|
NUXT_APP_REPLICAS | 1 | set |
NUXT_DB_POOL_MAX | 6 | set |
NUXT_MODULE_POOL_REPLICAS | 2 | set |
NUXT_JWT_SECRET | change-me-to-a-long-random-string | set |
NUXT_ENV_MODE | staging | optional |
NUXT_DB_HOST | timescaledb | set |
NUXT_DB_PORT | 5432 | set |
NUXT_DB_NAME | knetrahub | set |
NUXT_DB_USER | knetrahub | set |
NUXT_DB_PASSWORD | change-me-to-a-long-random-string | set |
KNETRA_INTERNAL_TOKEN_FILE | /run/secrets/knetrahub_internal_token | optional |
NUXT_DOCKER_SOCKET_PATH | /var/run/docker.sock | set |
NUXT_METRICS_RETENTION_DAYS | 30 | set |
NUXT_REDIS_URL | redis://knetrahub_redis:6379 | set |
NUXT_REDIS_PASSWORD_FILE | /run/secrets/knetrahub_redis_password | optional |
NUXT_DOCKER_REDIS_PREFIX | knd | set |
NUXT_VM_URL | http://knetrahub_victoriametrics:8428 | set |
Anything ending in _FILE reads its value from that path instead, which is how the stack passes Docker secrets.
This is one service of a stack, not a standalone container: it expects the portal database and its siblings on the same overlay network. Deploy it with the stack file that owns it rather than with docker run.
docker stack deploy -c docker/docker-compose.yml knetrahub
Pin a tag or a registry for this one service with KNETRAHUB_DOCKER_WORKER_IMAGE, which the stack file reads:
export KNETRAHUB_DOCKER_WORKER_IMAGE=phirumseng/knetrahub-docker-worker:0.1.11
latest ā the most recent releasex.y.z (e.g. 0.1.11) ā immutable release versionsPin the version in production. A rollback needs a tag that does not move, and every image in the stack is released under the same version so the whole set can be pinned together.
Each service is its own image, so one can be updated without restarting the others:
phirumseng/knetrahub-appā ā Monolith (app)phirumseng/knetrahub-uiā ā UIphirumseng/knetrahub-core-apiā ā Core APIphirumseng/knetrahub-docker-apiā ā Docker APIphirumseng/knetrahub-docker-worker ā Docker worker ā this imagephirumseng/knetrahub-monitoring-apiā ā Monitoring APIphirumseng/knetrahub-monitoring-workerā ā Monitoring workerphirumseng/knetrahub-work-apiā ā Work APIphirumseng/knetrahub-work-workerā ā Work workerphirumseng/knetrahub-pam-apiā ā Privileged Access APIphirumseng/knetrahub-pam-workerā ā Privileged Access workerphirumseng/knetrahub-ipmgt-apiā ā IP Management APIphirumseng/knetrahub-ipmgt-workerā ā IP Management workerphirumseng/knetrahub-dbmanager-apiā ā Database Manager APIphirumseng/knetrahub-agentā ā node agentphirumseng/knetrahub-pam-ssh-gatewayā ā PAM SSH gatewayphirumseng/knetrahub-pam-connector-runnerā ā PAM connector runnerphirumseng/knetrahub-dbmanager-gatewayā ā DB Manager gatewayProprietary ā Ā© Seng Phirum. All rights reserved.
Content type
Image
Digest
sha256:ce47179deā¦
Size
61.2 MB
Last updated
7 days ago
docker pull phirumseng/knetrahub-docker-worker