xthursdayx / yacreaderlibrary-server-docker

Docker image running a headless version of YACReaderLibraryServer 📦
https://hub.docker.com/r/xthursdayx/yacreaderlibrary-server-docker
GNU General Public License v3.0
56 stars 5 forks source link

[BUG] libQt5Core.so.5: cannot open shared object file #39

Open helderco opened 11 months ago

helderco commented 11 months ago

Expected Behavior

Expected to interact with YACReaderLibraryServer and be able to see something when opening the exposed port in a browser.

Current Behavior

Nothing happens. There's an error while loading shared libaries.

Steps to Reproduce

  1. Add service to compose.yml
  2. docker compose up -d
  3. Try to open :8100
  4. Any YACReaderLibraryServer <command> returns same error

Environment

I'm using a Synology DS716+II with DSM 7.1.1 and supported Docker package installed:

> uname -a
Linux Siriology 3.10.108 #42962 SMP Mon May 29 14:35:41 CST 2023 x86_64 GNU/Linux synology_braswell_716+II
> docker version
Client:
 Version:           20.10.3
 API version:       1.41
 Go version:        go1.17.1
 Git commit:        55f0773
 Built:             Thu Jul 21 10:23:46 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.3
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.1
  Git commit:       b487c8f
  Built:            Thu Jul 21 10:21:56 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.4.3
  GitCommit:        3fa00912415f3e9c6f82dd72119179d599efd13b
 runc:
  Version:          v1.0.0-rc93
  GitCommit:        31cc25f16f5eba4d0f53e35374532873744f4b31
 docker-init:
  Version:          0.19.0
  GitCommit:        ed96d00

Command used to create docker container (run/create/compose/screenshot)

  yacreaderlibrary-server:
    image: xthursdayx/yacreaderlibrary-server-docker:p7zip
    container_name: yaclibrary
    environment:
      - PUID=1030
      - PGID=100
      - TZ=Atlantic/Azores
    volumes:
      - ./yaclibrary:/config
      - /volume1/comics:/comics
    ports:
      - 8100:8080
    restart: always

I tried with :unarr first, but same issue.

REPOSITORY                                  TAG              IMAGE ID       CREATED         SIZE
xthursdayx/yacreaderlibrary-server-docker   p7zip            e2f08a156e09   2 months ago    799MB
xthursdayx/yacreaderlibrary-server-docker   unarr            17ed95ca6b60   2 months ago    584MB

Docker logs

[migrations] started
[migrations] no migrations found

----------------------------------------------------------
   _  __________  ____  ______  _____ ____  _____  ___  __
  | |/ /_  __/ / / / / / / __ \/ ___// __ \/   \ \/ / |/ /
  |   / / / / /_/ / / / / /_/ /\__ \/ / / / /| |\  /|   /
 /   | / / / __  / /_/ / _, _/___/ / /_/ / ___ |/ //   |
/_/|_|/_/ /_/ /_/\____/_/ |_|/____/_____/_/  |_/_//_/|_|

Brought to you by xthursdayx
----------------------------------------------------------
GID/UID
----------------------------------------------------------

User uid:    1030
User gid:    100
-------------------------------------

[custom-init] No custom files found, skipping...
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
xthursdayx commented 10 months ago

I'm not sure what is causing this issue and am not familiar with Synology, but have tried mounting your config volume somewhere else? I've only ever mounted docker volumes using the complete directory path, rather than using ..

helderco commented 10 months ago

Yeah, it's not the volume.

xthursdayx commented 10 months ago

Unfortunately, I am unable to reproduce the error, so I can't really troubleshoot it.

I know you said that any YACReaderLibraryServer command creates the same error, but you have run the command to create your comic library, correct? docker exec YACReaderLibraryServer YACReaderLibraryServer create-library <library-name> /comics

I just ask, because I know that there have been issues with YACReaderLibrary in the past when people tried to run it with an empty library.

Other than that I'm not sure what the issue could be, but I can follow up upstream with the YACReader devs, since I assume the issue may be with YACReaderLibrary, not the docker image.

helderco commented 10 months ago

Yes I can't run any YACReaderLibraryServer command. I do have a non-empty library. I created it via my laptop, same docker image.

My laptop is running linux/arm64 on Docker 24.0.2 while Synology is on linux/amd64 on Docker 20.10.3

From laptop

❯ docker run -it --rm xthursdayx/yacreaderlibrary-server-docker:p7zip
[migrations] started
[migrations] no migrations found
usermod: no changes

----------------------------------------------------------
   _  __________  ____  ______  _____ ____  _____  ___  __
  | |/ /_  __/ / / / / / / __ \/ ___// __ \/   \ \/ / |/ /
  |   / / / / /_/ / / / / /_/ /\__ \/ / / / /| |\  /|   /
 /   | / / / __  / /_/ / _, _/___/ / /_/ / ___ |/ //   |
/_/|_|/_/ /_/ /_/\____/_/ |_|/____/_____/_/  |_/_//_/|_|

Brought to you by xthursdayx
----------------------------------------------------------
GID/UID
----------------------------------------------------------

User uid:    911
User gid:    911
-------------------------------------

[custom-init] No custom files found, skipping...
INFO  2023-07-25T23:24:29.595 YACReaderLibraryServer attempting to start
INFO  2023-07-25T23:24:29.595 ---------- System & configuration ----------
INFO  2023-07-25T23:24:29.595 OS: "Ubuntu 22.04.2 LTS" Version:  "22.04"
INFO  2023-07-25T23:24:29.595 Kernel: "linux" "5.15.49-linuxkit-pr" Architecture: "arm64"
INFO  2023-07-25T23:24:29.595 Libraries:  QMap()
INFO  2023-07-25T23:24:29.595 --------------------------------------------
INFO  2023-07-25T23:24:29.595 YACReaderLibrary starting
INFO  2023-07-25T23:24:29.596 Running on "172.17.0.3:8080"

INFO  2023-07-25T23:24:29.596 "███████████████████████████████"
INFO  2023-07-25T23:24:29.596 "███████████████████████████████"
INFO  2023-07-25T23:24:29.596 "█████ ▄▄▄▄▄ ██▀▀▄ █ ▄▄▄▄▄ █████"
INFO  2023-07-25T23:24:29.596 "█████ █   █ █▄▄▀  █ █   █ █████"
INFO  2023-07-25T23:24:29.596 "█████ █▄▄▄█ █ ▀▀ ▄█ █▄▄▄█ █████"
INFO  2023-07-25T23:24:29.596 "█████▄▄▄▄▄▄▄█▄▀ █▄█▄▄▄▄▄▄▄█████"
INFO  2023-07-25T23:24:29.596 "█████▀▄█▀ █▄▀   ▀  █  █ ▀▀█████"
INFO  2023-07-25T23:24:29.596 "█████ █ ▀▀ ▄▄▀█ █▄█▀█▀▀█ ▀█████"
INFO  2023-07-25T23:24:29.596 "██████▄████▄▄▀▄▄ █  ▄▀█▄  █████"
INFO  2023-07-25T23:24:29.596 "█████ ▄▄▄▄▄ ██▄ █▀███▄ █▀ █████"
INFO  2023-07-25T23:24:29.596 "█████ █   █ █▄▄ █  ▀ █▀▄▀ █████"
INFO  2023-07-25T23:24:29.596 "█████ █▄▄▄█ █▀▄▄ ███▄▄▀██▀█████"
INFO  2023-07-25T23:24:29.596 "█████▄▄▄▄▄▄▄██▄▄█▄▄▄█▄▄█▄▄█████"
INFO  2023-07-25T23:24:29.596 "███████████████████████████████"
INFO  2023-07-25T23:24:29.596 "███████████████████████████████"
[ls.io-init] done.

From Synology

# docker run -it --rm xthursdayx/yacreaderlibrary-server-docker:p7zip
[migrations] started
[migrations] no migrations found
usermod: no changes

----------------------------------------------------------
   _  __________  ____  ______  _____ ____  _____  ___  __
  | |/ /_  __/ / / / / / / __ \/ ___// __ \/   \ \/ / |/ /
  |   / / / / /_/ / / / / /_/ /\__ \/ / / / /| |\  /|   /
 /   | / / / __  / /_/ / _, _/___/ / /_/ / ___ |/ //   |
/_/|_|/_/ /_/ /_/\____/_/ |_|/____/_____/_/  |_/_//_/|_|

Brought to you by xthursdayx
----------------------------------------------------------
GID/UID
----------------------------------------------------------

User uid:    911
User gid:    911
-------------------------------------

[custom-init] No custom files found, skipping...
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
xthursdayx commented 10 months ago

I'm not sure it will make any difference, but do you want to try this again with the newly released image? If I bring this issue to the YACReader devs, I want to make sure the issue persists on the most recent release.

helderco commented 10 months ago

Same result:

❯ docker inspect xthursdayx/yacreaderlibrary-server-docker -f '{{json .Config.Labels}}' | jq
{
  "build_version": "Linuxserver.io version:- abb6e73a-ls75 Build-date:- 2023-07-25T23:25:54+00:00",
  "maintainer": "xthursdayx",
  "org.opencontainers.image.authors": "linuxserver.io",
  "org.opencontainers.image.created": "2023-07-28T16:41:23.183Z",
  "org.opencontainers.image.description": "Docker image running a headless version of YACReaderLibraryServer 📦",
  "org.opencontainers.image.documentation": "https://docs.linuxserver.io/images/docker-baseimage-ubuntu",
  "org.opencontainers.image.licenses": "GPL-3.0",
  "org.opencontainers.image.ref.name": "3adcc653ddd4febf61e13930a8c724086b4adcb5",
  "org.opencontainers.image.revision": "404c8ca93bb61fbc9ab40df48b37f38ed2a196a7",
  "org.opencontainers.image.source": "https://github.com/xthursdayx/yacreaderlibrary-server-docker",
  "org.opencontainers.image.title": "yacreaderlibrary-server-docker",
  "org.opencontainers.image.url": "https://github.com/xthursdayx/yacreaderlibrary-server-docker",
  "org.opencontainers.image.vendor": "linuxserver.io",
  "org.opencontainers.image.version": "v1.6.1"
}

Thanks for looking into this 🙏

helderco commented 10 months ago
❯ docker run --rm -d --name=yaclibrary xthursdayx/yacreaderlibrary-server-docker@sha256:524a179b31ecd5b8d6627ce2b1c05472604065d2879ac68a350eeb6101366dbc
❯ docker logs yaclibrary
[migrations] started
[migrations] no migrations found
usermod: no changes

----------------------------------------------------------
   _  __________  ____  ______  _____ ____  _____  ___  __
  | |/ /_  __/ / / / / / / __ \/ ___// __ \/   \ \/ / |/ /
  |   / / / / /_/ / / / / /_/ /\__ \/ / / / /| |\  /|   /
 /   | / / / __  / /_/ / _, _/___/ / /_/ / ___ |/ //   |
/_/|_|/_/ /_/ /_/\____/_/ |_|/____/_____/_/  |_/_//_/|_|

Brought to you by xthursdayx
----------------------------------------------------------
GID/UID
----------------------------------------------------------

User uid:    911
User gid:    911
-------------------------------------

[custom-init] No custom files found, skipping...
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
github-actions[bot] commented 9 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

j-syn commented 6 months ago

Tried to install on my Synology (DS1817+) as well, same sad result.

Bad News:

This is a known Synology problem. You will find this bug listed under a million different docker images and packages.

Good news:

There is a workaround! (yay!!!!!!)

This bug has been around so long and affects so many packages, some kind soul found a fix. This fix seems to work for a large variety of docker images.

Steps to Fix:

Step 1: Install this docker image however you prefer. My Portainer.io Stack looks like this, yours could look very different, or you could be using Docker directly instead of Portainer... it doesn't matter. Just get this docker installed and running.

version: "3"
services:
  image: xthursdayx/yacreaderlibrary-server-docker
  container_name: YACReaderLibraryServer
  healthcheck:
    test: curl -f http://localhost:8080/ || exit 1
  mem_limit: 4g
  cpu_shares: 192
  security_opt:
    - no-new-privileges:true
  restart: unless-stopped
  ports: 
    - 8080:8080
  volumes:
    - "/volume1/docker/yaclibraryserver:/config"
    - "/volume1/music/My Media/Comics and Comic Strips/Comics Sorted:/comics"
  environment:
    PUID: 1024
    PGID: 100
    TZ: America/New_York

NOTE- If you try to run YACReaderLibraryServer right now, you're going to get the dreaded "YACReaderLibraryServer: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory" error.

Step 2: You're going to need to run three commands inside the docker in order to fix this problem. You can use "docker exec" to do this, or (like me) just run docker exec /bin/bash and then run your commands from there.

apt-get update
apt-get install binutils
strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

Step 3: You're all good! That was it. Now just use it. For my Portainer Container script shown above, I then run:

YACReaderLibraryServer create-library "Comic Books and Graphic Novels" /comics

Don't forget to have opened up port 8080 inside Synology's firewall!

github-actions[bot] commented 5 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.