当提供 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
:解决方案:
加入
ServerAlias cups-server
_/etc/cups/cupsd.conf