CUPS 客户端无法使用 docker 容器名称

CUPS 客户端无法使用 docker 容器名称

当提供 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 应该可以很好地使用容器名称。

非常感谢您提出任何关于如何解决这个问题的想法,或者为什么杯子与容器名称不相符。

答案1

事实证明这是 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

相关内容