Назад | Перейти на главную страницу

Клиент CUPS не работает с именем контейнера докеров

Клиент 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