Запуск Кубков в докереLinux

Ответить
Anonymous
 Запуск Кубков в докере

Сообщение Anonymous »


After many trial/errors and browsing online I recently was able to run cups in docker. I'm running it on a separate image which is running supervisord, when accessing the container, I can run lpstat and can validate the cups is in fact running. Docker is running locally on my computer, not in a server, and will run like that for the time being.

Now, I'm trying to figure out how to add my printers. I'm using a label printer (`Epson TM-T20III) which is connected via usb to my Mac.

When I attempt to access the cups UI (http://localhost:631/printers/) I'm not accessing the one from docker but the one from my computer.

I tried adding Listen *:631 to my cupsd.conf but when attempting to access http://0.0.0.0:631/ I'm getting a bad request error. It used to be Listen 0.0.0.0:631 but was getting a This site can't be reached.

I tried mapping the port 632 to 631 used in Docker but doesn't work.

Here's my Dockerfile:

FROM php:8.1.12-fpm ARG uid=1000 ARG user=inigomontoya RUN apt-get update && apt-get install -y \ libpng-dev \ libonig-dev \ libxml2-dev \ libzip-dev \ git \ curl \ zip \ unzip \ supervisor \ cups \ cups-pdf # Install and enable xDebug RUN pecl install xdebug \ && docker-php-ext-enable xdebug RUN apt-get clean && rm -rf /var/lib/apt/lists/* # Install php modules required by laravel. RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip # Create system user to run Composer and Artisan commands. RUN useradd -G www-data,root -u $uid -d /home/$user $user RUN mkdir -p /home/$user/.composer && \ chown -R $user:$user /home/$user # Install composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Create directory for supervisor logs RUN mkdir -p "/etc/supervisor/logs" && chmod -R 775 "/etc/supervisor/logs" # Set working directory WORKDIR /var/www # Copy supervisor config files COPY ./docker/config/supervisor/supervisord.conf /etc/supervisor/supervisord.conf COPY cupsd.conf /etc/cups/cupsd.conf USER $user Here's docker-compose.yaml:

version: "3.9" services: app: build: context: ./ dockerfile: Dockerfile image: dmc container_name: dmc-app restart: unless-stopped working_dir: /var/www/ env_file: - ./.env.development depends_on: - db - nginx volumes: - ./:/var/www/ - ./docker/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini - ./docker/php/conf.d/error_reporting.ini:/usr/local/etc/php/conf.d/error_reporting.ini - ./images:/public/images expose: - "9003" - "631" networks: - dmc-net nginx: image: nginx:1.23.2-alpine container_name: dmc-nginx restart: unless-stopped ports: - "8000:80" volumes: - ./:/var/www - ./docker-compose/nginx:/etc/nginx/conf.d networks: - dmc-net supervisor: build: . container_name: dmc-supervisor command: /usr/bin/supervisord restart: unless-stopped depends_on: - app - nginx - db volumes: - ./:/var/www/ - ./docker/config/supervisor/supervisord.conf:/etc/supervisor/supervisord.conf expose: - "632:631" networks: - dmc-net Here's the cupsd.conf file:

DefaultEncryption Never LogLevel warn PageLogFormat Port 631 Listen 0.0.0.0:631 Browsing On BrowseLocalProtocols dnssd DefaultAuthType Basic WebInterface yes Order allow,deny Allow all Order allow,deny Allow All AuthType Default Require user @SYSTEM Order allow,deny AuthType Default Require user @SYSTEM Order allow,deny JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default Order deny,allow Require user @OWNER @SYSTEM Order deny,allow AuthType Default Require user @OWNER @SYSTEM Order deny,allow AuthType Default Require user @SYSTEM Order deny,allow AuthType Default Require user @AUTHKEY(system.print.operator) @admin @lpadmin Order deny,allow Require user @OWNER @AUTHKEY(system.print.operator) @admin @lpadmin Order deny,allow Order deny,allow JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default AuthType Default Order deny,allow AuthType Default Require user @OWNER @SYSTEM Order deny,allow AuthType Default Require user @SYSTEM Order deny,allow AuthType Default Require user @AUTHKEY(system.print.operator) @admin @lpadmin Order deny,allow AuthType Default Require user @OWNER @AUTHKEY(system.print.operator) @admin @lpadmin Order deny,allow Order deny,allow JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default AuthType Negotiate Order deny,allow AuthType Negotiate Require user @OWNER @SYSTEM Order deny,allow AuthType Default Require user @SYSTEM Order deny,allow AuthType Default Require user @AUTHKEY(system.print.operator) @admin @lpadmin Order deny,allow AuthType Negotiate Require user @OWNER @AUTHKEY(system.print.operator) @admin @lpadmin Order deny,allow Order deny,allow PageLogFormat PageLogFormat PageLogFormat and here's the supervisord.conf file just in case:

[supervisord] logfile=/etc/supervisor/logs/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=5MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid nodaemon=true ; start in foreground if true; default false minfds=1024 ; min. avail startup file descriptors; default 1024 minprocs=200 ; min. avail process descriptors;default 200 [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket [program:app-worker] # user=root process_name=%(program_name)s_%(process_num)02d command=php /var/www/artisan queue:work --sleep=3 --tries=3 autostart=true autorestart=true stopasgroup=true killasgroup=true numprocs=1 redirect_stderr=true stdout_logfile=/var/www/storage/logs/worker.log [program:cups] process_name=%(program_name)s_%(process_num)02d command=/usr/sbin/cupsd -f autostart=true autorestart=true stopasgroup=true killasgroup=true numprocs=1 redirect_stderr=true stdout_logfile=/var/www/storage/logs/cups.log There's something I don't understand quite well, from my app container (that's where my backend code lives) I'm running the print command which internally uses lpstat (I'm using a PHP library) but this command was installed in a different container (the one which run supervisor), how can I make this work?

Thanks.


Источник: https://stackoverflow.com/questions/781 ... -on-docker
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»