Как выполнить две команды в команде RUN в Docker? - PullRequest
0 голосов
/ 21 ноября 2018

Я создаю образ Docker на основе httpd .

Я устанавливаю программное обеспечение CUPS и пытаюсь добавить принтерв этом.

После установки CUPS в образе докера с помощью команды RUN - RUN ["apt", "install", "-y", "cups"], на следующем шаге я пытаюсь перезапустить службу cups , а затем добавить принтер с помощью команды lpadmin.

service cups start

lpadmin -p printer_name -E -v url -m everywhere

Но это работает только тогда, когда я запускаю оба этих сервиса и запускаюдобавьте команды принтера в одну команду RUN, используя символ && между ними следующим образом:

RUN ["service cups start", "&&", "lpadmin -p printer_name -E -v url -m everywhere"]

Если я поставлю их отдельно, как указано ниже:

RUN ["service cups start"]

RUN ["lpadmin -p printer_name -E -v url -m everywhere"]

выдает следующую ошибку:

lpadmin: Unable to connect to server: Bad file descriptor

Вот моя часть содержимого Dockerfile:

USER root

RUN ["apt", "update"]

RUN ["apt", "install", "-y", "cups"]

RUN ["systemctl", "enable", "cups"]

RUN ["service", "cups", "start", "&&", "./printerslist.sh"]

RUN ["chmod", "-R", "-f", "777", "/var/run"]

ENTRYPOINT ["service", "cups", "restart"]
...