Клиент CUPS не может печатать при указании сервера CUPS в качестве имени контейнера, хотя он отлично работает с IP-адресом контейнера:
Образец docker-compose.yml
:
version: '3.7'
services:
client:
container_name: cups_client
image: cups_client
server:
container_name: cups_server
image: cups_server
Клиентский контейнер /etc/cups/client.conf
использует имя контейнера сервера:
ServerName cups_server
Однако эта конфигурация не работает должным образом (выполняется внутри клиентского контейнера):
$ lpstat -r
scheduler is running
$ lpstat -v
lpstat: Error - add '/version=1.1' to server name.
Я попытался добавить '/version=1.1' к имени сервера в /etc/cups/client.conf
, но ошибка все равно отображается.
Однако, если я использую сервер IP-адрес контейнера в /etc/cups/client.conf
, печать работает нормально:
ServerName 172.27.0.2
Увидеть разницу в lpstat -v
:
$ lpstat -r
scheduler is running
$ lpstat -v
device for queue_name: ipp://192.168.0.10/ipp/port1
Однако разрешение имен работает нормально в клиентском контейнере:
$ getent hosts cups_server
172.27.0.2 cups_server
Теперь использование IP-адреса на самом деле не вариант, поскольку конфигурация печати предоставляется уже во время сборки, когда IP еще не известен. Также, насколько я понимаю, CUPS должен нормально работать с именем контейнера.
Благодарен за любую идею, как решить эту проблему или почему чашки не сочетаются с названием контейнера.
Оказывается, это была проблема с конфигурацией сервера CUPS.
Сервер CUPS входит в систему /var/log/cups/error_log
:
Request from "172.27.0.3" using invalid Host: field "cups-server:631".
Решение:
Добавить ServerAlias cups-server
в /etc/cups/cupsd.conf