docker-kkmserver -- это сервер печати чеков/этикеток KkmServer в контейнере Docker.
Создайте образ (это действие можно пропустить):
docker build \
--tag quay.io/alexanderfefelov/kkmserver \
.
Запустите контейнер:
docker run \
--name kkmserver \
--detach \
--tty \
--volume /etc/localtime:/etc/localtime:ro \
--volume kkmserver:/opt/kkmserver/Settings \
--publish 5893:5893 \
--health-cmd /healthcheck.sh --health-start-period 3s --health-interval 1m --health-timeout 1s --health-retries 3 \
--log-opt max-size=10m --log-opt max-file=5 \
quay.io/alexanderfefelov/kkmserver
При использовании кассового аппарата, подключенного через USB-порт, необходимо "прокинуть" в контейнер соответствующее устройство, например, так:
docker run \
--name kkmserver \
...
--device /dev/ttyACM0:/dev/ttyACM0 \
...
quay.io/alexanderfefelov/kkmserver
Узнать имя устройства можно с помощью команды dmesg
:
...
[604961.208270] usb 7-1: new full-speed USB device number 3 using uhci_hcd
[604961.414710] usb 7-1: New USB device found, idVendor=2912, idProduct=0001
[604961.414717] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[604961.414721] usb 7-1: Product: FPrint VCOM.
[604961.414724] usb 7-1: Manufacturer: ATOL Group.
[604961.414727] usb 7-1: SerialNumber: 00473561
[604962.099082] cdc_acm 7-1:1.0: ttyACM0: USB ACM device
[604962.102565] usbcore: registered new interface driver cdc_acm
[604962.102568] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
...
Для управления контейнером используйте команды:
docker stop kkmserver
docker start kkmserver
docker restart kkmserver
Файлы данных KkmServer хранятся в Docker-томе, путь к которому можно узнать с помощью команды
docker volume inspect --format '{{.Mountpoint}}' kkmserver
Эмулятор ККТ в контейнере печатает чеки в stdout
(т. е. в консоль), а всё, что контейнер
выводит в stdout
, попадает в журнал контейнера (см. ниже).
Для просмотра журнала воспользуйтесь командой
docker logs --follow kkmserver
Очистить журнал контейнера можно так
echo > $(docker inspect --format='{{.LogPath}}' kkmserver)
Удалите контейнер:
docker rm --force kkmserver
Удалите образ:
docker image rm quay.io/alexanderfefelov/kkmserver
🔥 Удалите данные (настройки и логи):
docker volume rm kkmserver