Open
Description
Current Behavior
This line of code creates a symlink to a directory that does not exist.
https://github.com/jlesage/docker-makemkv/blob/master/rootfs/etc/cont-init.d/55-makemkv.sh#L49
ln -s /config /config/.MakeMKV

Expected Behavior
if the config
directory does not exist, then create it.
Steps To Reproduce
mount an empty volume and the config directory does not get created
services:
makemkv-1:
image: docker.io/jlesage/makemkv
container_name: makemkv1
environment:
- TZ=America/New_York
ports:
- "5800:5800"
volumes:
- "/video/rips/makemkv1:/config:rw"
- "/video/rips:/output:rw"
devices:
- "/dev/sr0:/dev/sr0"
- "/dev/sg1:/dev/sg1"
restart: unless-stopped
Environment
- OS:
- OS version:
- CPU:
- Docker version:
- Device model:
- Browser/OS:
Container creation
docker compose up
Container log
WARN[0000] Found orphan containers ([makemkv2]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
[+] Running 1/1
✔ Container makemkv1 Created 0.0s
Attaching to makemkv1
makemkv1 | [init ] container is starting...
makemkv1 | [cont-env ] loading container environment variables...
makemkv1 | [cont-env ] APP_NAME: loading...
makemkv1 | [cont-env ] APP_VERSION: loading...
makemkv1 | [cont-env ] DISPLAY: executing...
makemkv1 | [cont-env ] DISPLAY: terminated successfully.
makemkv1 | [cont-env ] DISPLAY: loading...
makemkv1 | [cont-env ] DOCKER_IMAGE_PLATFORM: loading...
makemkv1 | [cont-env ] DOCKER_IMAGE_VERSION: loading...
makemkv1 | [cont-env ] EGL_LOG_LEVEL: executing...
makemkv1 | [cont-env ] EGL_LOG_LEVEL: terminated successfully.
makemkv1 | [cont-env ] EGL_LOG_LEVEL: loading...
makemkv1 | [cont-env ] GSK_RENDERER: executing...
makemkv1 | [cont-env ] GSK_RENDERER: terminated successfully.
makemkv1 | [cont-env ] GSK_RENDERER: loading...
makemkv1 | [cont-env ] GTK2_RC_FILES: executing...
makemkv1 | [cont-env ] GTK2_RC_FILES: terminated successfully.
makemkv1 | [cont-env ] GTK2_RC_FILES: not setting variable.
makemkv1 | [cont-env ] GTK_THEME: executing...
makemkv1 | [cont-env ] GTK_THEME: terminated successfully.
makemkv1 | [cont-env ] GTK_THEME: not setting variable.
makemkv1 | [cont-env ] HOME: loading...
makemkv1 | [cont-env ] PULSE_CONFIG_PATH: executing...
makemkv1 | [cont-env ] PULSE_CONFIG_PATH: terminated successfully.
makemkv1 | [cont-env ] PULSE_CONFIG_PATH: not setting variable.
makemkv1 | [cont-env ] PULSE_COOKIE: executing...
makemkv1 | [cont-env ] PULSE_COOKIE: terminated successfully.
makemkv1 | [cont-env ] PULSE_COOKIE: not setting variable.
makemkv1 | [cont-env ] PULSE_SERVER: executing...
makemkv1 | [cont-env ] PULSE_SERVER: terminated successfully.
makemkv1 | [cont-env ] PULSE_SERVER: not setting variable.
makemkv1 | [cont-env ] QT_STYLE_OVERRIDE: executing...
makemkv1 | [cont-env ] QT_STYLE_OVERRIDE: terminated successfully.
makemkv1 | [cont-env ] QT_STYLE_OVERRIDE: not setting variable.
makemkv1 | [cont-env ] SUP_GROUP_IDS_INTERNAL: executing...
makemkv1 | [cont-env ] SUP_GROUP_IDS_INTERNAL: terminated successfully.
makemkv1 | [cont-env ] SUP_GROUP_IDS_INTERNAL: loading...
makemkv1 | [cont-env ] TAKE_CONFIG_OWNERSHIP: loading...
makemkv1 | [cont-env ] XDG_CACHE_HOME: loading...
makemkv1 | [cont-env ] XDG_CONFIG_HOME: loading...
makemkv1 | [cont-env ] XDG_DATA_HOME: loading...
makemkv1 | [cont-env ] XDG_RUNTIME_DIR: loading...
makemkv1 | [cont-env ] XDG_STATE_HOME: loading...
makemkv1 | [cont-env ] container environment variables initialized.
makemkv1 | [cont-secrets] loading container secrets...
makemkv1 | [cont-secrets] container secrets loaded.
makemkv1 | [cont-init ] executing container initialization scripts...
makemkv1 | [cont-init ] 10-certs.sh: executing...
makemkv1 | [cont-init ] 10-certs.sh: terminated successfully.
makemkv1 | [cont-init ] 10-check-app-niceness.sh: executing...
makemkv1 | [cont-init ] 10-check-app-niceness.sh: terminated successfully.
makemkv1 | [cont-init ] 10-clean-logmonitor-states.sh: executing...
makemkv1 | [cont-init ] 10-clean-logmonitor-states.sh: terminated successfully.
makemkv1 | [cont-init ] 10-clean-tmp-dir.sh: executing...
makemkv1 | [cont-init ] 10-clean-tmp-dir.sh: terminated successfully.
makemkv1 | [cont-init ] 10-fontconfig-cache-dir.sh: executing...
makemkv1 | [cont-init ] 10-fontconfig-cache-dir.sh: terminated successfully.
makemkv1 | [cont-init ] 10-init-users.sh: executing...
makemkv1 | [cont-init ] 10-init-users.sh: terminated successfully.
makemkv1 | [cont-init ] 10-nginx.sh: executing...
makemkv1 | [cont-init ] 10-nginx.sh: terminated successfully.
makemkv1 | [cont-init ] 10-openbox.sh: executing...
makemkv1 | [cont-init ] 10-openbox.sh: terminated successfully.
makemkv1 | [cont-init ] 10-pkgs-mirror.sh: executing...
makemkv1 | [cont-init ] 10-pkgs-mirror.sh: terminated successfully.
makemkv1 | [cont-init ] 10-pulse.sh: executing...
makemkv1 | [cont-init ] 10-pulse.sh: terminated successfully.
makemkv1 | [cont-init ] 10-set-tmp-dir-perms.sh: executing...
makemkv1 | [cont-init ] 10-set-tmp-dir-perms.sh: terminated successfully.
makemkv1 | [cont-init ] 10-vnc-password.sh: executing...
makemkv1 | [cont-init ] 10-vnc-password.sh: terminated successfully.
makemkv1 | [cont-init ] 10-web-data.sh: executing...
makemkv1 | [cont-init ] 10-web-data.sh: terminated successfully.
makemkv1 | [cont-init ] 10-webauth.sh: executing...
makemkv1 | [cont-init ] 10-webauth.sh: terminated successfully.
makemkv1 | [cont-init ] 10-x11-unix.sh: executing...
makemkv1 | [cont-init ] 10-x11-unix.sh: terminated successfully.
makemkv1 | [cont-init ] 10-xdg-runtime-dir.sh: executing...
makemkv1 | [cont-init ] 10-xdg-runtime-dir.sh: terminated successfully.
makemkv1 | [cont-init ] 15-cjk-font.sh: executing...
makemkv1 | [cont-init ] 15-cjk-font.sh: terminated successfully.
makemkv1 | [cont-init ] 15-install-pkgs.sh: executing...
makemkv1 | [cont-init ] 15-install-pkgs.sh: terminated successfully.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: executing...
makemkv1 | [cont-init ] 54-check-optical-drive.sh: looking for usable optical drives...
makemkv1 | [cont-init ] 54-check-optical-drive.sh: found optical drive 'HL-DT-ST BD-RE WH16NS40 1.00' [/dev/sr0, /dev/sg1]
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] associated SCSI Generic (sg) device detected: /dev/sg1.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] the host device /dev/sg1 is exposed to the container.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] the device /dev/sg1 has proper permissions.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] the container can write to device /dev/sg1.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] associated SCSI CD-ROM (sr) device detected: /dev/sr0.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] the host device /dev/sr0 is exposed to the container.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] the device /dev/sr0 has proper permissions.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] the container can write to device /dev/sr0.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: found optical drive 'PIONEER BD-RW BDR-212U 1.01' [/dev/sr1, /dev/sg2]
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] associated SCSI Generic (sg) device detected: /dev/sg2.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ ERR ] the host device /dev/sg2 is not exposed to the container.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ OK ] associated SCSI CD-ROM (sr) device detected: /dev/sr1.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: [ WARN ] the device /dev/sr1 is not exposed to the container.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: performance or ability to use the device will suffer.
makemkv1 | [cont-init ] 54-check-optical-drive.sh: terminated successfully.
makemkv1 | [cont-init ] 55-makemkv.sh: executing...
makemkv1 | [cont-init ] 55-makemkv.sh: generating machine-id...
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/settings.conf' -> '/config/settings.conf'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/QtProject.conf' -> '/config/xdg/config/QtProject.conf'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/gui_disc_rip_terminated.sh.example' -> '/config/hooks/gui_disc_rip_terminated.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/gui_disc_rip_started.sh.example' -> '/config/hooks/gui_disc_rip_started.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/gui_raw.sh.example' -> '/config/hooks/gui_raw.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/disc_rip_skipped.sh.example' -> '/config/hooks/disc_rip_skipped.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/disc_rip_started.sh.example' -> '/config/hooks/disc_rip_started.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/disc_rip_terminated.sh.example' -> '/config/hooks/disc_rip_terminated.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/automatic_disc_ripper_started.sh.example' -> '/config/hooks/automatic_disc_ripper_started.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks/disc_eject_failed.sh.example' -> '/config/hooks/disc_eject_failed.sh.example'
makemkv1 | [cont-init ] 55-makemkv.sh: '/defaults/hooks' -> '/config/hooks'
makemkv1 | [cont-init ] 55-makemkv.sh: checking for new beta key...
makemkv1 | [cont-init ] 55-makemkv.sh: updating registration key...
makemkv1 | [cont-init ] 55-makemkv.sh: terminated successfully.
makemkv1 | [cont-init ] 56-autodiscripper.sh: executing...
makemkv1 | [cont-init ] 56-autodiscripper.sh: terminated successfully.
makemkv1 | [cont-init ] 85-take-config-ownership.sh: executing...
makemkv1 | [cont-init ] 85-take-config-ownership.sh: terminated successfully.
makemkv1 | [cont-init ] 89-info.sh: executing...
makemkv1 | ╭――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╮
makemkv1 | │ │
makemkv1 | │ Application: MakeMKV │
makemkv1 | │ Application Version: 1.18.1 │
makemkv1 | │ Docker Image Version: 25.05.1 │
makemkv1 | │ Docker Image Platform: linux/amd64 │
makemkv1 | │ │
makemkv1 | ╰――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╯
makemkv1 | [cont-init ] 89-info.sh: terminated successfully.
makemkv1 | [cont-init ] all container initialization scripts executed.
makemkv1 | [init ] giving control to process supervisor.
makemkv1 | [supervisor ] loading services...
makemkv1 | [supervisor ] loading service 'default'...
makemkv1 | [supervisor ] loading service 'logmonitor'...
makemkv1 | [supervisor ] service 'logmonitor' is disabled.
makemkv1 | [supervisor ] loading service 'app'...
makemkv1 | [supervisor ] loading service 'gui'...
makemkv1 | [supervisor ] loading service 'xcompmgr'...
makemkv1 | [supervisor ] loading service 'openbox'...
makemkv1 | [supervisor ] loading service 'xvnc'...
makemkv1 | [supervisor ] loading service 'pulseaudio'...
makemkv1 | [supervisor ] service 'pulseaudio' is disabled.
makemkv1 | [supervisor ] loading service 'audiorecorder'...
makemkv1 | [supervisor ] service 'audiorecorder' is disabled.
makemkv1 | [supervisor ] loading service 'nginx'...
makemkv1 | [supervisor ] loading service 'webauth'...
makemkv1 | [supervisor ] service 'webauth' is disabled.
makemkv1 | [supervisor ] loading service 'certsmonitor'...
makemkv1 | [supervisor ] service 'certsmonitor' is disabled.
makemkv1 | [supervisor ] loading service 'logrotate'...
makemkv1 | [supervisor ] loading service 'autodiscripper'...
makemkv1 | [supervisor ] service 'autodiscripper' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-0'...
makemkv1 | [supervisor ] service 'autodiscripper-0' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-7'...
makemkv1 | [supervisor ] service 'autodiscripper-7' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-14'...
makemkv1 | [supervisor ] service 'autodiscripper-14' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-1'...
makemkv1 | [supervisor ] service 'autodiscripper-1' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-15'...
makemkv1 | [supervisor ] service 'autodiscripper-15' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-3'...
makemkv1 | [supervisor ] service 'autodiscripper-3' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-6'...
makemkv1 | [supervisor ] service 'autodiscripper-6' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-13'...
makemkv1 | [supervisor ] service 'autodiscripper-13' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-8'...
makemkv1 | [supervisor ] service 'autodiscripper-8' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-11'...
makemkv1 | [supervisor ] service 'autodiscripper-11' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-5'...
makemkv1 | [supervisor ] service 'autodiscripper-5' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-2'...
makemkv1 | [supervisor ] service 'autodiscripper-2' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-4'...
makemkv1 | [supervisor ] service 'autodiscripper-4' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-9'...
makemkv1 | [supervisor ] service 'autodiscripper-9' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-10'...
makemkv1 | [supervisor ] service 'autodiscripper-10' is disabled.
makemkv1 | [supervisor ] loading service 'autodiscripper-12'...
makemkv1 | [supervisor ] service 'autodiscripper-12' is disabled.
makemkv1 | [supervisor ] all services loaded.
makemkv1 | [supervisor ] starting services...
makemkv1 | [supervisor ] starting service 'xvnc'...
makemkv1 | [xvnc ] Xvnc TigerVNC 1.14.1 - built Feb 7 2025 21:11:05
makemkv1 | [xvnc ] Copyright (C) 1999-2024 TigerVNC Team and many others (see README.rst)
makemkv1 | [xvnc ] See https://www.tigervnc.org for information on TigerVNC.
makemkv1 | [xvnc ] Underlying X server release 12014000
makemkv1 | [xvnc ] Tue Jun 17 01:36:37 2025
makemkv1 | [xvnc ] vncext: VNC extension running!
makemkv1 | [xvnc ] vncext: Listening for VNC connections on /tmp/vnc.sock (mode 0660)
makemkv1 | [xvnc ] vncext: Listening for VNC connections on all interface(s), port 5900
makemkv1 | [xvnc ] vncext: created VNC server for screen 0
makemkv1 | [supervisor ] starting service 'openbox'...
makemkv1 | [supervisor ] starting service 'xcompmgr'...
makemkv1 | [supervisor ] starting service 'nginx'...
makemkv1 | [nginx ] Listening for HTTP connections on port 5800.
makemkv1 | [supervisor ] starting service 'app'...
makemkv1 | [supervisor ] all services started.
makemkv1 | [logrotate ] warning: state file /config/xdg/state/logrotate/logrotate.status is world-readable and thus can be locked from other unprivileged users. Skipping lock acquisition...
makemkv1 | [logrotate ] error: error setting mode of /config/xdg/state/logrotate/logrotate.status.tmp: Operation not permitted
makemkv1 | [supervisor ] service 'logrotate' exited (with status 1).
Container inspect
Anything else?
No response