jlesage / docker-makemkv

Docker container for MakeMKV
MIT License
428 stars 50 forks source link

[Bug] Drive enumeration in 54-check-optical-drive.sh #220

Open JosiahKerley opened 4 days ago

JosiahKerley commented 4 days ago

Current Behavior

SR_DEV and SG_DEV are picking out - as the device path given the following output from lsscsi:

[1:0:0:0] cd/dvd HL-DT-ST BD-RE WH14NS40 1.05 /dev/sr0 -

Expected Behavior

SR_DEV and SG_DEV assigned as /dev/sr0 given the lsscsi output:

[1:0:0:0] cd/dvd HL-DT-ST BD-RE WH14NS40 1.05 /dev/sr0 -

Steps To Reproduce

No response

Environment

Container creation

  virtualisation.oci-containers.containers = {
    makemkv = {
      image = "docker.io/jlesage/makemkv:latest";
      autoStart = true;
      ports = [ "5800:5800" ];
      volumes = [
        "/run/media/josiah/DATA/makemkv/config:/config:rw"
        "/run/media/josiah/DATA/makemkv:/storage:ro"
        "/run/media/josiah/DATA/makemkv/output:/output:rw"
      ];
      extraOptions = [
        "--device=/dev/disk/by-id/ata-HL-DT-ST_BD-RE_WH14NS40_KLPK7693753:/dev/sr0"
      ];
      environment = {
        "MAKEMKV_KEY" = "REDACTED";
        "APP_NICENESS" = "19";
        "AUTO_DISC_RIPPER_BD_MODE" = "mkv";
        "AUTO_DISC_RIPPER_FORCE_UNIQUE_OUTPUT_DIR" = "1";
        "AUTO_DISC_RIPPER" = "1";
        "AUTO_DISC_RIPPER_EJECT" = "1";
      };
    };
  };

Container log

[init        ] container is starting...
[cont-env    ] loading container environment variables...
[cont-env    ] APP_NAME: loading...
[cont-env    ] APP_VERSION: loading...
[cont-env    ] DISPLAY: executing...
[cont-env    ] DISPLAY: terminated successfully.
[cont-env    ] DISPLAY: loading...
[cont-env    ] DOCKER_IMAGE_PLATFORM: loading...
[cont-env    ] DOCKER_IMAGE_VERSION: loading...
[cont-env    ] GTK2_RC_FILES: executing...
[cont-env    ] GTK2_RC_FILES: terminated successfully.
[cont-env    ] GTK2_RC_FILES: loading...
[cont-env    ] GTK_THEME: executing...
[cont-env    ] GTK_THEME: terminated successfully.
[cont-env    ] GTK_THEME: loading...
[cont-env    ] HOME: loading...
[cont-env    ] QT_STYLE_OVERRIDE: executing...
[cont-env    ] QT_STYLE_OVERRIDE: terminated successfully.
[cont-env    ] QT_STYLE_OVERRIDE: loading...
[cont-env    ] SUP_GROUP_IDS_INTERNAL: executing...
[cont-env    ] SUP_GROUP_IDS_INTERNAL: terminated successfully.
[cont-env    ] SUP_GROUP_IDS_INTERNAL: loading...
[cont-env    ] TAKE_CONFIG_OWNERSHIP: loading...
[cont-env    ] XDG_CACHE_HOME: loading...
[cont-env    ] XDG_CONFIG_HOME: loading...
[cont-env    ] XDG_DATA_HOME: loading...
[cont-env    ] XDG_RUNTIME_DIR: loading...
[cont-env    ] XDG_STATE_HOME: loading...
[cont-env    ] container environment variables initialized.
[cont-secrets] loading container secrets...
[cont-secrets] container secrets loaded.
[cont-init   ] executing container initialization scripts...
[cont-init   ] 10-certs.sh: executing...
[cont-init   ] 10-certs.sh: terminated successfully.
[cont-init   ] 10-check-app-niceness.sh: executing...
[cont-init   ] 10-check-app-niceness.sh: terminated successfully.
[cont-init   ] 10-clean-logmonitor-states.sh: executing...
[cont-init   ] 10-clean-logmonitor-states.sh: terminated successfully.
[cont-init   ] 10-clean-tmp-dir.sh: executing...
[cont-init   ] 10-clean-tmp-dir.sh: terminated successfully.
[cont-init   ] 10-fontconfig-cache-dir.sh: executing...
[cont-init   ] 10-fontconfig-cache-dir.sh: terminated successfully.
[cont-init   ] 10-init-users.sh: executing...
[cont-init   ] 10-init-users.sh: terminated successfully.
[cont-init   ] 10-nginx.sh: executing...
[cont-init   ] 10-nginx.sh: terminated successfully.
[cont-init   ] 10-openbox.sh: executing...
[cont-init   ] 10-openbox.sh: terminated successfully.
[cont-init   ] 10-pkgs-mirror.sh: executing...
[cont-init   ] 10-pkgs-mirror.sh: terminated successfully.
[cont-init   ] 10-set-tmp-dir-perms.sh: executing...
[cont-init   ] 10-set-tmp-dir-perms.sh: terminated successfully.
[cont-init   ] 10-vnc-password.sh: executing...
[cont-init   ] 10-vnc-password.sh: terminated successfully.
[cont-init   ] 10-web-data.sh: executing...
[cont-init   ] 10-web-data.sh: terminated successfully.
[cont-init   ] 10-x11-unix.sh: executing...
[cont-init   ] 10-x11-unix.sh: terminated successfully.
[cont-init   ] 10-xdg-runtime-dir.sh: executing...
[cont-init   ] 10-xdg-runtime-dir.sh: terminated successfully.
[cont-init   ] 15-cjk-font.sh: executing...
[cont-init   ] 15-cjk-font.sh: terminated successfully.
[cont-init   ] 15-install-pkgs.sh: executing...
[cont-init   ] 15-install-pkgs.sh: terminated successfully.
[cont-init   ] 54-check-optical-drive.sh: executing...
[cont-init   ] 54-check-optical-drive.sh: looking for usable optical drives...
[cont-init   ] 54-check-optical-drive.sh: found optical drive [/dev/sr0, -], but it is not usable because:
[cont-init   ] 54-check-optical-drive.sh:   --> the host device - is not exposed to the container.
[cont-init   ] 54-check-optical-drive.sh: found optical drive [/dev/sr1, -], but it is not usable because:
[cont-init   ] 54-check-optical-drive.sh:   --> the host device - is not exposed to the container.
[cont-init   ] 54-check-optical-drive.sh: no usable optical drive found.
[cont-init   ] 54-check-optical-drive.sh: terminated successfully.
[cont-init   ] 55-makemkv.sh: executing...
[cont-init   ] 55-makemkv.sh: registration key already up-to-date.
[cont-init   ] 55-makemkv.sh: getting supported drives...
[cont-init   ] 55-makemkv.sh: terminated successfully.
[cont-init   ] 85-take-config-ownership.sh: executing...
[cont-init   ] 85-take-config-ownership.sh: terminated successfully.
[cont-init   ] 89-info.sh: executing...
    ╭――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╮
    │                                                                      │
    │ Application:           MakeMKV                                       │
    │ Application Version:   1.17.7                                        │
    │ Docker Image Version:  24.06.1                                       │
    │ Docker Image Platform: linux/amd64                                   │
    │                                                                      │
    ╰――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╯
[cont-init   ] 89-info.sh: terminated successfully.
[cont-init   ] all container initialization scripts executed.
[init        ] giving control to process supervisor.
[supervisor  ] loading services...
[supervisor  ] loading service 'default'...
[supervisor  ] loading service 'logmonitor'...
[supervisor  ] service 'logmonitor' is disabled.
[supervisor  ] loading service 'logrotate'...
[supervisor  ] loading service 'app'...
[supervisor  ] loading service 'gui'...
[supervisor  ] loading service 'openbox'...
[supervisor  ] loading service 'xvnc'...
[supervisor  ] loading service 'certsmonitor'...
[supervisor  ] service 'certsmonitor' is disabled.
[supervisor  ] loading service 'nginx'...
[supervisor  ] loading service 'autodiscripper-11'...
[supervisor  ] service 'autodiscripper-11' is disabled.
[supervisor  ] loading service 'autodiscripper-0'...
[supervisor  ] service 'autodiscripper-0' is disabled.
[supervisor  ] loading service 'autodiscripper'...
[supervisor  ] service 'autodiscripper' is disabled.
[supervisor  ] loading service 'autodiscripper-1'...
[supervisor  ] service 'autodiscripper-1' is disabled.
[supervisor  ] loading service 'autodiscripper-2'...
[supervisor  ] service 'autodiscripper-2' is disabled.
[supervisor  ] loading service 'autodiscripper-3'...
[supervisor  ] service 'autodiscripper-3' is disabled.
[supervisor  ] loading service 'autodiscripper-4'...
[supervisor  ] service 'autodiscripper-4' is disabled.
[supervisor  ] loading service 'autodiscripper-9'...
[supervisor  ] service 'autodiscripper-9' is disabled.
[supervisor  ] loading service 'autodiscripper-7'...
[supervisor  ] service 'autodiscripper-7' is disabled.
[supervisor  ] loading service 'autodiscripper-13'...
[supervisor  ] service 'autodiscripper-13' is disabled.
[supervisor  ] loading service 'autodiscripper-6'...
[supervisor  ] service 'autodiscripper-6' is disabled.
[supervisor  ] loading service 'autodiscripper-8'...
[supervisor  ] service 'autodiscripper-8' is disabled.
[supervisor  ] loading service 'autodiscripper-15'...
[supervisor  ] service 'autodiscripper-15' is disabled.
[supervisor  ] loading service 'autodiscripper-14'...
[supervisor  ] service 'autodiscripper-14' is disabled.
[supervisor  ] loading service 'autodiscripper-5'...
[supervisor  ] service 'autodiscripper-5' is disabled.
[supervisor  ] loading service 'autodiscripper-10'...
[supervisor  ] service 'autodiscripper-10' is disabled.
[supervisor  ] loading service 'autodiscripper-12'...
[supervisor  ] service 'autodiscripper-12' is disabled.
[supervisor  ] all services loaded.
[supervisor  ] starting services...
[supervisor  ] starting service 'xvnc'...
[xvnc        ] Xvnc TigerVNC 1.13.1 - built Dec 21 2023 00:55:16
[xvnc        ] Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)
[xvnc        ] See https://www.tigervnc.org for information on TigerVNC.
[xvnc        ] Underlying X server release 12014000
[xvnc        ] Tue Sep 17 21:07:29 2024
[xvnc        ]  vncext:      VNC extension running!
[xvnc        ]  vncext:      Listening for VNC connections on /tmp/vnc.sock (mode 0660)
[xvnc        ]  vncext:      Listening for VNC connections on all interface(s), port 5900
[xvnc        ]  vncext:      created VNC server for screen 0
[supervisor  ] starting service 'openbox'...
[supervisor  ] starting service 'nginx'...
[nginx       ] Listening for HTTP connections on port 5800.
[supervisor  ] starting service 'app'...
[supervisor  ] all services started.
[xvnc        ] Tue Sep 17 21:12:10 2024
[xvnc        ]  Connections: accepted: /tmp/vnc.sock
[xvnc        ]  SConnection: Client needs protocol version 3.8
[xvnc        ]  SConnection: Client requests security type None(1)
[xvnc        ]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
[xvnc        ]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
[xvnc        ]  ComparingUpdateTracker: 0 pixels in / 0 pixels out
[xvnc        ]  ComparingUpdateTracker: (1:-nan ratio)

Container inspect

No response

Anything else?

Proposed fix submitted in https://github.com/jlesage/docker-makemkv/pull/219

jlesage commented 2 days ago

To my knowledge, without a /dev/sgX device, MakeMKV won't recognize the drive.

The log message could be enhanced, but basically the - means that there is no device.