linuxserver / docker-calibre

GNU General Public License v3.0
338 stars 62 forks source link

[BUG] unable to start container since v6.15.0-ls211 #130

Closed jrhbcn closed 1 year ago

jrhbcn commented 1 year ago

Is there an existing issue for this?

Current Behavior

Since version v6.15.0-ls211 I am unable to start the docker container. Logs show:

mv: cannot move '/usr/local/etc/kasmvnc/kasmvnc.yaml.lsio' to a subdirectory of itself, '/usr/local/etc/kasmvnc/kasmvnc.yaml'
s6-rc: warning: unable to start service init-kasmvnc-config: command exited 1

Previous version v6.15.0-ls210 runs fine.

Expected Behavior

Container starts normally.

Steps To Reproduce

  1. Create docker compose entry
  2. Start container
  3. container start fails with error

Environment

- OS: LXC container on a proxmox 7.4 machine
- docker installed using standard docker instructions for debian bullseye
- Using recommended docker-compose options

CPU architecture

x86-64

Docker creation

docker compose up -d calibre

Container logs

mv: cannot move '/usr/local/etc/kasmvnc/kasmvnc.yaml.lsio' to a subdirectory of itself, '/usr/local/etc/kasmvnc/kasmvnc.yaml'
s6-rc: warning: unable to start service init-kasmvnc-config: command exited 1
github-actions[bot] commented 1 year ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

Roxedus commented 1 year ago

Post your compose

jrhbcn commented 1 year ago

This is my docker compose file:

  calibre:
    image: lscr.io/linuxserver/calibre
    container_name: calibre
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
    volumes:
      - /mnt/downloads:/downloads
      - /mnt/media/ebooks:/books
      - ./data/calibre:/config
jrhbcn commented 1 year ago

I have further looked into this, there seems to be an incompatibility between proxmox LXC containers, docker and ZFS (see here and here). Calibre container was running fine before, but now the new version using KasmVNC seems to trigger this incompatibility.

I have found two workarounds to this:

  1. Use fuse-overlay2 with docker in the LXC container following this guide. Then calibre container works fine. However, you cannot backup the LXC container in proxmox anymore.
  2. Create a VM (instead of LXC) and run docker and calibre there. However, there are more resources used (VM vs LXC) and I have problems mounting the ebook folder in the VM (calibre complains with samba filesystems) that need also to workaround that.

Maybe is there a way to bypass this incompatilibity as previous calibre containers did?

thelamer commented 1 year ago

This action is just setting a config file during init in the container. Along with that there will be file movements and modifications for the NGINX setup. Your error would indicate the container is being run in read only mode which would not be supported stacked on top of us only testing containers with the latest version of Docker. This is not a preference or fanboy thing we just only test on Docker because we lack the time to run these through additional container platforms. For this container to function as is, it needs to make modifications to the underlying files not mounted out to a volume on the host so it requires RW.

If you are interested in a mode that functions in user-space take a look at the /kasminit entrypoint in the container. It is drastically different than S6 and listens on completely different ports with https and basic auth https://localhost:6901 kasm_user/vncpassword.

docker run --rm -it --entrypoint /kasminit --user 1000 -p 6901:6901 linuxserver/calibre

The app does not autostart in this mode on this particular container as we use s6 specific logic in the autostart file, so you would need to right click to launch it or modify root/defaults/autostart to suite your needs.

In any case I think this falls outside of regular supported platforms and we would not be making any modifications outside of what already exists in the container to accommodate this type of configuration.

jrhbcn commented 1 year ago

Sure, I'll go the VM route, as it seems to be the one supported by proxmox to run docker containers. I'll take a look at the entry point you mention just in case. Thanks,