lpinfo не найден в docker

#python #docker

#python #docker

Вопрос:

Я использую python:slim-buster изображение и пытаюсь установить принтер, чтобы его можно было использовать в моих контейнерах. Я следую этим замечательным указаниям (которые работали на моем хост-компьютере — ну, на самом деле на моей виртуальной машине Linux, которую я рассматриваю в качестве хоста для среды docker), но контейнер docker не может найти lpinfo lpstat или какие-либо другие команды принтера. Я проверил /usr/sbin , и его там тоже нет.

Как мне это исправить? Или, может быть, нет необходимости использовать принтер в docker?

Обновления после некоторых комментариев:

  1. Я действительно использую python:3.8.0-slim-buster image. Я точно не привязан к этому изображению. Я начал с alpine image, но в нем используется apk, а не apt, и в apk нет нужного мне драйвера печати.
  2. Я даже не привязан к использованию Python. Со мной тоже все было бы в порядке. Я не знаю, какие библиотеки я буду использовать для печати — я работал над тем, чтобы сначала заставить принтер взаимодействовать с Docker, прежде чем я включил что-либо в код проекта. Предыдущим шагом было заставить печать работать с терминала моей виртуальной машины Linux (на моем ноутбуке с Windows), и я решил, что следующим шагом будет заставить печать работать с терминала моего контейнера Docker (via docker exec ). Возможно, я ошибаюсь, и мой настоящий вопрос: «как печатать из контейнера docker?»

Комментарии:

1. (1) Если вам нужны инструменты, которых нет в изображении, вам нужно их добавить. Если образ основан на базе в стиле Debian (что buster-slim , я предполагаю slim-buster , было ошибкой), это означает вызов apt или dpkg в вашем Dockerfile; если он построен на базе на основе RPM, как правило yum ; и т. Д

2. (2) Нужны ли вам эти инструменты для печати с Python, полностью зависит от того, какие интерфейсы предлагает ваш принтер, и какие библиотеки вы используете для печати (и поддерживает ли он изначально соответствующие протоколы). Если у вас есть библиотека Python, которая выводит Postscript по проводам, и принтер, на который можно подавать Postscript через сокет, вот и все — у вас есть все движущиеся части, больше ничего не нужно. Но если вы не сообщите нам, какие библиотеки Python вы используете, и какие интерфейсы или протоколы поддерживает ваш принтер, это не совсем ответственный вопрос.

3. Я бы также настоятельно (настоятельно!) Советовал вообще не пытаться устанавливать IPP-сервер внутри вашего контейнера Docker. Он не сможет использовать usb:// адреса в CUPS, например. Лучше просто подключить его по сети к копии CUPS на вашем хосте, которая уже имеет рабочее соединение с вашим принтером. Что нужно для этого, зависит от того, какие библиотеки Python вы используете для печати, о чем вы опять же не сказали.

4. @CharlesDuffy спасибо за комментарии. Я обновил свой вопрос некоторыми из упомянутых вами вещей.

5. Итак, если Chrome запущен на хост-компьютере Linux, почему вы не печатаете из Chrome? Быстрый поиск в Google предполагает window.print() , что это следует сделать.