Skip to content
Rulemapping

Automation Platform Documentation

Appendix: Single Docker Commands

Compose is the documented installation path. This appendix lists the equivalent individual docker commands, for troubleshooting a running installation or for understanding what Compose does.

Terminal window
docker compose ps
docker inspect ktdocker0 --format '{{.Config.Image}} {{.State.Status}}'
docker inspect ktdocker0 --format '{{json .Mounts}}' | python3 -m json.tool
Terminal window
docker exec -it ktdocker0 /bin/sh
docker exec -it ktdocker0 /rw/bin/cms.sh /finish-installation

docker exec runs inside the already running container, which is what you want when diagnosing state. The cms service from the Compose file instead starts a fresh container with the same mounts — use that when the application container is not running.

The Compose equivalent is docker compose --profile tools run --rm cms ….

Terminal window
docker run --rm -e TZ=Europe/Berlin \
-v "$PWD/rw:/rw" -v "$PWD/rwshared:/rwshared" \
registry.onstackit.cloud/rms/ktdocker:3.24.28 \
/rw/bin/cms.sh /write-secret-file

Add -it when the command prompts for input, for example /reset-administrator.

Terminal window
docker run --rm -v "$PWD/sql:/sql" \
--entrypoint /bin/sh \
registry.onstackit.cloud/rms/ktdocker:3.24.28 -c \
'cp /ro/xin/sql/pg.sql /sql/pg.sql &&
cp /ro/xin/sql/pg-fun/header.sql /sql/header.sql'
Terminal window
docker run -d --name ktdocker0 --restart unless-stopped \
-e TZ=Europe/Berlin \
-p 8080:8080 \
-v "$PWD/rw:/rw" -v "$PWD/rwshared:/rwshared" \
registry.onstackit.cloud/rms/ktdocker:3.24.28

This is what the ktdocker service in the Compose file expands to, minus the health check and the log limits.

Older installations used named Docker volumes (ktdocker0rw, ktdocker0rwshared) instead of the rw/ and rwshared/ directories. To inspect such an installation:

Terminal window
docker volume ls
docker volume inspect ktdocker0rw # shows the Mountpoint on the host
# read a file out of a named volume without root
docker run --rm -v ktdocker0rw:/rw alpine cat /rw/ktbs.cl

To migrate a named volume to the bind-mount layout of this guide, copy its contents out while nothing is running:

Terminal window
docker compose down
docker run --rm -v ktdocker0rw:/from -v "$PWD/rw:/to" alpine \
sh -c 'cd /from && tar cf - . | (cd /to && tar xf -)'
docker run --rm -v ktdocker0rwshared:/from -v "$PWD/rwshared:/to" alpine \
sh -c 'cd /from && tar cf - . | (cd /to && tar xf -)'
sudo chown -R 1234:1234 rw rwshared
docker compose up -d

Verify the instance works before deleting the old volumes.

Terminal window
docker image inspect registry.onstackit.cloud/rms/ktdocker:3.24.28 \
--format '{{.Architecture}}/{{.Os}} {{.Id}}'
grep ':VERSION' *.cl

An image tagged 3.24.x requires a license with :VERSION 3240. The architecture must be amd64.