
いつもお世話になっております。
Dockerfileにて、RUNでサービスを起動し、その起動したサービスに対してコマンドを実行したいと考えています。
Dockerfileでプリンターサーバーをたてて、その後、必要なプリンターの設定も行おうと思い下記のような設定をしております。
RUN set -x \ && apt-get install cups -y \ && /etc/init.d/cups start \ && /usr/sbin/lpadmin -p TEST_PRINT-m lsb/usr/CNCUPSLBP441EZJ.ppd -v socket://192.168.1.10
lpadmin が実行されるのですが、
lpadmin: Unable to connect to server: Transport endpoint is not connected
となり、サービスが起動されていないため、lpadminが正常に終了しませんでした。
一時的にでも、イメージ作成中にサービスを起動することはできないのでしょうか?
解決方法がございましたら、ご教授いただけると幸いです。
宜しくお願い致します。
tatsuya6502様から、アドバイスを頂き切り分けをしてみました。
ご回答ありがとうございます。
macvlan を利用して、ホスト上と同一ネットワークにする予定です。
lpadminで、固定のIPアドレスを指定しているのは、ルーティングで解決し印刷もできるようにするため、小生の環境では固定とさせて頂きました。
RUN set -x \ && apt-get install cups -y \
のコンテナを作成し、Google Container Repositoryにアップして、イメージ作成後、コンテナ起動して、ログインしてみました。
Dockerfile
1FROM gcr.io/xxx_xxxx/cups_test 2 3ADD . /src 4WORKDIR /src 5 6RUN set -x \ 7&& chmod 755 /src/printer-add.sh \ 8&& /usr/sbin/cupsd \ 9&& /usr/sbin/lpadmin -p TEST_PRINT-m lsb/usr/CNCUPSLBP441EZJ.ppd -v socket://192.168.1.10 10
想定では、この段階で、プリンターが追加されることを想定しています。
その後、コンテナ起動し確認しました。
docker run --privileged -d --net=mcv --ip=192.168.2.14 -v /var/docker:/var/docker --name cups_test fd242a638373 /sbin/init
docker exec -it cups_test /bin/bash
cupsのサービスの確認
1# /etc/init.d/cups status 2● cups.service - CUPS Scheduler 3Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled) 4Active: active (running) since Mon 2018-03-12 09:12:34 UTC; 57s ago 5Docs: man:cupsd(8) 6Main PID: 36 (cupsd) 7CGroup: /system.slice/docker-30865b31fd3db54c6dd3e7bafd41804b878227c32330d906c29ed534ef215078.scope/system.slice/cups.service 8└─36 /usr/sbin/cupsd -l 9 10Mar 12 09:12:34 30865b31fd3d systemd[1]: Started CUPS Scheduler. 11Mar 12 09:12:34 30865b31fd3d systemd[1]: Started CUPS Scheduler.
cupsのサービスは起動しております。
# ls /etc/cups/ppd/ TEST_PRINT.ppd
ppdファイルが作成されているのでできているのかと思ったのですが、GUI上の管理画面からは、プリンターが表示されていません。
念のために、再起動しても表示されませんでした。
ログイン後、コマンドラインから、
/usr/sbin/lpadmin -p TEST_PRINT-m lsb/usr/CNCUPSLBP441EZJ.ppd -v
を実行すると、GUIの管理画面からも表示されております。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。