audiobookshelf
audiobookshelf copied to clipboard
[Bug]: MODULE_NOT_FOUND error in Docker, crashing on startup
What happened?
Updated to latest docker image. Container crashing after startup. See logs below
What did you expect to happen?
I expected it to not crash
Steps to reproduce the issue
- Start up the docker container
- Watch docker container crash
Audiobookshelf version
2.23.0
How are you running audiobookshelf?
Docker
What OS is your Audiobookshelf server hosted from?
Linux
If the issue is being seen in the UI, what browsers are you seeing the problem on?
None
Logs
node:internal/modules/cjs/loader:1215
at Module._resolveFilename (node:internal/modules/cjs/loader:1212:15)
code: 'MODULE_NOT_FOUND',
^
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:164:12)
}
throw err;
at Module._load (node:internal/modules/cjs/loader:1043:27)
requireStack: []
Error: Cannot find module '/index.js'
at node:internal/main/run_main_module:28:49 {
Node.js v20.19.2
Additional Notes
Running on Synology
Duplicate of https://github.com/advplyr/audiobookshelf/issues/4292
Check that thread for answers. tl;dr - this is a synology issue.
Thanks, I did a "Clean" on the project, rebuilt it and now it works. Not sure why.
Thanks, I did a "Clean" on the project, rebuilt it and now it works. Not sure why.
It works because synology does really weird stuff on their own that isn't part of docker. They were caching environment variables and other parts of the image that shouldn't be cached. Forcing it to create a new container gets around that problem.
Im experiencing the same issue on Debian running on normal baremetal server, defo nothing to do with Synology. Here is my docker-compose:
services:
audiobookshelf:
user: "${MEDIA_PUID}:${MEDIA_PGID}"
cap_add:
- AUDIT_WRITE
- CHOWN
- DAC_OVERRIDE
- FOWNER
- FSETID
- KILL
- MKNOD
- NET_BIND_SERVICE
- NET_RAW
- SETFCAP
- SETGID
- SETPCAP
- SETUID
- SYS_CHROOT
cap_drop:
- ALL
container_name: audiobookshelf
hostname: audiobookshelf
image: advplyr/audiobookshelf:latest
ipc: private
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
networks:
- audiobookshelf
- traefik
ports:
- 3378:80/tcp
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.audiobookshelf.rule=Host(`audiobooks.${DOMAIN_NAME}`)"
- "traefik.http.routers.audiobookshelf.entrypoints=websecure"
- "traefik.http.routers.audiobookshelf.tls=true"
- "traefik.http.routers.audiobookshelf.tls.certresolver=letsencrypt"
- "traefik.http.services.audiobookshelf.loadbalancer.server.port=80"
volumes:
- /Data/Ebooks/Audiobooks:/audiobooks:ro
- /opt/docker/audiobookshelf/audiobookshelf_config:/config
- /opt/docker/audiobookshelf/audiobookshelf_metadata:/metadata
- /Data/Ebooks/Podcasts:/podcasts:ro
working_dir: /
networks:
audiobookshelf:
name: audiobookshelf
driver: bridge
external: false
traefik:
name: traefik
external: true
And the log repeadly shows:
audiobookshelf | 2025-05-18T20:16:19.902865872Z Error: Cannot find module '/index.js'
audiobookshelf | 2025-05-18T20:16:19.902871958Z at Module._resolveFilename (node:internal/modules/cjs/loader:1212:15)
audiobookshelf | 2025-05-18T20:16:19.902891324Z at Module._load (node:internal/modules/cjs/loader:1043:27)
audiobookshelf | 2025-05-18T20:16:19.902896265Z at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:164:12)
audiobookshelf | 2025-05-18T20:16:19.902900237Z at node:internal/main/run_main_module:28:49 {
audiobookshelf | 2025-05-18T20:16:19.902904229Z code: 'MODULE_NOT_FOUND',
audiobookshelf | 2025-05-18T20:16:19.902907836Z requireStack: []
audiobookshelf | 2025-05-18T20:16:19.902911254Z }
audiobookshelf | 2025-05-18T20:16:19.902914557Z
audiobookshelf | 2025-05-18T20:16:19.902917876Z Node.js v20.19.2
audiobookshelf | 2025-05-18T20:17:20.339930382Z node:internal/modules/cjs/loader:1215
audiobookshelf | 2025-05-18T20:17:20.339990002Z throw err;
audiobookshelf | 2025-05-18T20:17:20.340003612Z ^
audiobookshelf | 2025-05-18T20:17:20.340014340Z
audiobookshelf | 2025-05-18T20:17:20.340024516Z Error: Cannot find module '/index.js'
audiobookshelf | 2025-05-18T20:17:20.340034197Z at Module._resolveFilename (node:internal/modules/cjs/loader:1212:15)
audiobookshelf | 2025-05-18T20:17:20.340043793Z at Module._load (node:internal/modules/cjs/loader:1043:27)
audiobookshelf | 2025-05-18T20:17:20.340053408Z at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:164:12)
audiobookshelf | 2025-05-18T20:17:20.340063393Z at node:internal/main/run_main_module:28:49 {
audiobookshelf | 2025-05-18T20:17:20.340073540Z code: 'MODULE_NOT_FOUND',
audiobookshelf | 2025-05-18T20:17:20.340082593Z requireStack: []
audiobookshelf | 2025-05-18T20:17:20.340091925Z }
audiobookshelf | 2025-05-18T20:17:20.340100837Z
audiobookshelf | 2025-05-18T20:17:20.340109179Z Node.js v20.19.2
it was working fine until an update a few days ago (maybe up to two weeks ago). Completely destroying the stack and redeploying the compose file still doesnt work
Make sure you have fully removed the existing container and image, then pull the image again. It affects more than just Synology, but Synology has been the worst offender.
I have destroyed the stack, removed all the images:
root@r720-omv:~# docker image ls | grep audi
advplyr/audiobookshelf <none> 574f51737c44 3 days ago 311MB
root@r720-omv:~# docker image rm 574f51737c44
Untagged: advplyr/audiobookshelf@sha256:af827f25120c7a76c5b20bfb34f230353d44920ef7c55a9d7f3ae2aac9c51c94
Deleted: sha256:574f51737c448d1cf504652eaa3a624bf73dd193b58d0215063fa3d3c67c067f
Deleted: sha256:022b664b178dce955ebd1dba8a03931cdcef075e16773da5706bbb11dfbdc62b
Deleted: sha256:83041c90ffcd11d856ea47ee6f9ea73c44e5669bbeaad442472668b6f80fbded
Deleted: sha256:ca2a3272c60bf05b4417da52e1847efb84201a7d4a7cf7faeeea79a7eee78d2f
Deleted: sha256:d82669709339276e226b544245608db70b2df5b314fc59a5e58546ce47fd0196
Deleted: sha256:ca3247ef875e38859fdd067bcc1d2c20785911b9000acb4401cf2ee3176640c3
Deleted: sha256:c205df0c3153177146b7bb9044aef7edcccce2d7b749e1fc7f510a1d7bec6a66
Deleted: sha256:b30b2aaa3cdc94ca87a908b0ee813635d90646a2ff9b39bf2d3345b709516386
root@r720-omv:~# docker image ls | grep audi
root@r720-omv:~#
and redeployed compose file, but still doesnt help. I have also tried adding ghcr.io/ prefix to the container address
Just had this happen to me.
Recreating the stack fixed it.
I have destroyed the stack, removed all the images:
root@r720-omv:~# docker image ls | grep audi advplyr/audiobookshelf <none> 574f51737c44 3 days ago 311MB root@r720-omv:~# docker image rm 574f51737c44 Untagged: advplyr/audiobookshelf@sha256:af827f25120c7a76c5b20bfb34f230353d44920ef7c55a9d7f3ae2aac9c51c94 Deleted: sha256:574f51737c448d1cf504652eaa3a624bf73dd193b58d0215063fa3d3c67c067f Deleted: sha256:022b664b178dce955ebd1dba8a03931cdcef075e16773da5706bbb11dfbdc62b Deleted: sha256:83041c90ffcd11d856ea47ee6f9ea73c44e5669bbeaad442472668b6f80fbded Deleted: sha256:ca2a3272c60bf05b4417da52e1847efb84201a7d4a7cf7faeeea79a7eee78d2f Deleted: sha256:d82669709339276e226b544245608db70b2df5b314fc59a5e58546ce47fd0196 Deleted: sha256:ca3247ef875e38859fdd067bcc1d2c20785911b9000acb4401cf2ee3176640c3 Deleted: sha256:c205df0c3153177146b7bb9044aef7edcccce2d7b749e1fc7f510a1d7bec6a66 Deleted: sha256:b30b2aaa3cdc94ca87a908b0ee813635d90646a2ff9b39bf2d3345b709516386 root@r720-omv:~# docker image ls | grep audi root@r720-omv:~#and redeployed compose file, but still doesnt help. I have also tried adding ghcr.io/ prefix to the container address
What about docker ps -a? Those are just the images
same thing, ive been deleting container on each attempt
bdc2b38b3323 ghcr.io/advplyr/audiobookshelf:latest "tini -- node index.…" 8 hours ago Exited (1) About a minute ago audiobookshelf
root@r720-omv:~# docker container rm bdc2b38b3323
bdc2b38b3323
root@r720-omv:~# docker ps -a | grep audio
root@r720-omv:~#
docker inspect:
root@r720-omv:~# docker inspect audiobookshelf
[
{
"Id": "44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1",
"Created": "2025-05-19T04:37:15.544463035Z",
"Path": "tini",
"Args": [
"--",
"node",
"index.js"
],
"State": {
"Status": "restarting",
"Running": true,
"Paused": false,
"Restarting": true,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 1,
"Error": "",
"StartedAt": "2025-05-19T04:38:18.844537433Z",
"FinishedAt": "2025-05-19T04:38:21.217159852Z"
},
"Image": "sha256:9958782bff325541baaa94097e03cc59ac3c2530b7af349ee23e08c4448ccd5b",
"ResolvConfPath": "/var/lib/docker/containers/44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1/hostname",
"HostsPath": "/var/lib/docker/containers/44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1/hosts",
"LogPath": "/var/lib/docker/containers/44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1/44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1-json.log",
"Name": "/audiobookshelf",
"RestartCount": 10,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/Data/Ebooks/Audiobooks:/audiobooks:ro",
"/opt/docker/audiobookshelf/audiobookshelf_config:/config:rw",
"/opt/docker/audiobookshelf/audiobookshelf_metadata:/metadata:rw",
"/Data/Ebooks/Podcasts:/podcasts:ro"
],
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {
"max-file": "3",
"max-size": "10m"
}
},
"NetworkMode": "audiobookshelf",
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "3378"
}
]
},
"RestartPolicy": {
"Name": "unless-stopped",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
0,
0
],
"CapAdd": [
"CAP_AUDIT_WRITE",
"CAP_CHOWN",
"CAP_DAC_OVERRIDE",
"CAP_FOWNER",
"CAP_FSETID",
"CAP_KILL",
"CAP_MKNOD",
"CAP_NET_BIND_SERVICE",
"CAP_NET_RAW",
"CAP_SETFCAP",
"CAP_SETGID",
"CAP_SETPCAP",
"CAP_SETUID",
"CAP_SYS_CHROOT"
],
"CapDrop": [
"ALL"
],
"CgroupnsMode": "host",
"Dns": null,
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": [],
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": null,
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/interrupts",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap",
"/sys/devices/system/cpu/cpu0/thermal_throttle",
"/sys/devices/system/cpu/cpu1/thermal_throttle",
"/sys/devices/system/cpu/cpu2/thermal_throttle",
"/sys/devices/system/cpu/cpu3/thermal_throttle",
"/sys/devices/system/cpu/cpu4/thermal_throttle",
"/sys/devices/system/cpu/cpu5/thermal_throttle",
"/sys/devices/system/cpu/cpu6/thermal_throttle",
"/sys/devices/system/cpu/cpu7/thermal_throttle",
"/sys/devices/system/cpu/cpu8/thermal_throttle",
"/sys/devices/system/cpu/cpu9/thermal_throttle",
"/sys/devices/system/cpu/cpu10/thermal_throttle",
"/sys/devices/system/cpu/cpu11/thermal_throttle",
"/sys/devices/system/cpu/cpu12/thermal_throttle",
"/sys/devices/system/cpu/cpu13/thermal_throttle",
"/sys/devices/system/cpu/cpu14/thermal_throttle",
"/sys/devices/system/cpu/cpu15/thermal_throttle",
"/sys/devices/system/cpu/cpu16/thermal_throttle",
"/sys/devices/system/cpu/cpu17/thermal_throttle",
"/sys/devices/system/cpu/cpu18/thermal_throttle",
"/sys/devices/system/cpu/cpu19/thermal_throttle",
"/sys/devices/system/cpu/cpu20/thermal_throttle",
"/sys/devices/system/cpu/cpu21/thermal_throttle",
"/sys/devices/system/cpu/cpu22/thermal_throttle",
"/sys/devices/system/cpu/cpu23/thermal_throttle"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"ID": "44323da0ef06acc5f0af45f92a37b3266b27fb5d199e5f3c7694665037e3d3b1",
"LowerDir": "/var/lib/docker/overlay2/e82ac442d4bb21141fea7a05f272c15e9fa4b4b16b3b1993d14871f8d272252d-init/diff:/var/lib/docker/overlay2/0c4ba39522a1846656c2e97bd8faed437ddd22519838b0012dc4d64d63ccab14/diff:/var/lib/docker/overlay2/d4c02380cd62d0becd6bda2b1dc3ffc5c27442a146d4d90257469aaba073d4cd/diff:/var/lib/docker/overlay2/acc254d782638fb4efc313b75e7c6406fb39f67e609300c3392c54bf4a7c92f0/diff:/var/lib/docker/overlay2/e4db7758216e9a66ead0feda9928a260a6b7ef1fe592b0972c95569a8b566a8e/diff:/var/lib/docker/overlay2/623976f1303e1775fc5c31574a28b7418dc016eb22c17b8c62f870c26b533c8c/diff:/var/lib/docker/overlay2/9c027b84e803ec3d03eceefbb3818f22cfe60c1682e6b0e88da6b6ddb3a88de4/diff:/var/lib/docker/overlay2/8cc530f37c6c87e689dceee7947a142bd21ef367c0a5f0861ee967b63e5d8555/diff:/var/lib/docker/overlay2/7521730cbbe4cf6004908b5d5ab2e375fc9bd2579f37836b2f59feb6f26fd77f/diff:/var/lib/docker/overlay2/e68c0aba89bc1b5a32e3a24289f01e1754c7ddea779ad4ee155698775ca959b6/diff",
"MergedDir": "/var/lib/docker/overlay2/e82ac442d4bb21141fea7a05f272c15e9fa4b4b16b3b1993d14871f8d272252d/merged",
"UpperDir": "/var/lib/docker/overlay2/e82ac442d4bb21141fea7a05f272c15e9fa4b4b16b3b1993d14871f8d272252d/diff",
"WorkDir": "/var/lib/docker/overlay2/e82ac442d4bb21141fea7a05f272c15e9fa4b4b16b3b1993d14871f8d272252d/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "bind",
"Source": "/Data/Ebooks/Audiobooks",
"Destination": "/audiobooks",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/opt/docker/audiobookshelf/audiobookshelf_config",
"Destination": "/config",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/opt/docker/audiobookshelf/audiobookshelf_metadata",
"Destination": "/metadata",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/Data/Ebooks/Podcasts",
"Destination": "/podcasts",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "audiobookshelf",
"Domainname": "",
"User": "1001:100",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=20.19.2",
"YARN_VERSION=1.22.22",
"PORT=80",
"NODE_ENV=production",
"CONFIG_PATH=/config",
"METADATA_PATH=/metadata",
"SOURCE=docker",
"NUSQLITE3_DIR=/usr/local/lib/nusqlite3",
"NUSQLITE3_PATH=/usr/local/lib/nusqlite3/libnusqlite3.so"
],
"Cmd": [
"node",
"index.js"
],
"Image": "ghcr.io/advplyr/audiobookshelf:latest",
"Volumes": null,
"WorkingDir": "/",
"Entrypoint": [
"tini",
"--"
],
"OnBuild": null,
"Labels": {
"com.docker.compose.config-hash": "c0fc502e8a93cac107c44d693b7f8e0460f9394c6bb50644e6ace8c444fe4448",
"com.docker.compose.container-number": "1",
"com.docker.compose.depends_on": "",
"com.docker.compose.image": "sha256:9958782bff325541baaa94097e03cc59ac3c2530b7af349ee23e08c4448ccd5b",
"com.docker.compose.oneoff": "False",
"com.docker.compose.project": "audiobookshelf",
"com.docker.compose.project.config_files": "/etc/komodo/stacks/audiobookshelf/r720-omv/audiobookshelf/compose.yaml",
"com.docker.compose.project.environment_file": "/etc/komodo/stacks/audiobookshelf/r720-omv/audiobookshelf/.env",
"com.docker.compose.project.working_dir": "/etc/komodo/stacks/audiobookshelf/r720-omv/audiobookshelf",
"com.docker.compose.service": "audiobookshelf",
"com.docker.compose.version": "2.35.1",
"org.opencontainers.image.created": "2025-05-16T22:07:50.749Z",
"org.opencontainers.image.description": "Self-hosted audiobook and podcast server",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.revision": "077273033657da2345494084dc7a1f399cc1a7ba",
"org.opencontainers.image.source": "https://github.com/advplyr/audiobookshelf",
"org.opencontainers.image.title": "audiobookshelf",
"org.opencontainers.image.url": "https://github.com/advplyr/audiobookshelf",
"org.opencontainers.image.version": "2.23.0",
"traefik.enable": "true",
"traefik.http.routers.audiobookshelf.entrypoints": "websecure",
"traefik.http.routers.audiobookshelf.rule": "Host(`audiobooks.xxx`)",
"traefik.http.routers.audiobookshelf.tls": "true",
"traefik.http.routers.audiobookshelf.tls.certresolver": "letsencrypt",
"traefik.http.services.audiobookshelf.loadbalancer.server.port": "80"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "",
"SandboxKey": "",
"Ports": {},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"audiobookshelf": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"audiobookshelf",
"audiobookshelf"
],
"MacAddress": "",
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "ea3c4f8fd9cb986c3d9b2942eaef061b556a4917e06b96f4a5e83344d135cf24",
"EndpointID": "",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": [
"audiobookshelf",
"44323da0ef06"
]
},
"traefik": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"audiobookshelf",
"audiobookshelf"
],
"MacAddress": "",
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "1890cf9ac72f3292c8cbc378e2d1a7b88f1e8febb0a858f3799177a5acbe32ee",
"EndpointID": "",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": [
"audiobookshelf",
"44323da0ef06"
]
}
}
}
}
]
I'm not seeing any of those SHA for the last few releases at https://github.com/advplyr/audiobookshelf/pkgs/container/audiobookshelf (but I could be missing it, I only checked the last few releases).
hmmm should the image sha in docker inspect match the image sha on docker hub? Now ive tried
image: ghcr.io/advplyr/audiobookshelf@sha256:2d8bee3e87e860d67e11e13b5c42d97cb1fe071de53dea5502b3a9292e75e024
in docker compose, docker inspect still shows
"Image": "sha256:9958782bff325541baaa94097e03cc59ac3c2530b7af349ee23e08c4448ccd5b",
hmmm
root@r720-omv:~# docker image ls | grep audio
root@r720-omv:~# docker image pull ghcr.io/advplyr/audiobookshelf@sha256:2d8bee3e87e860d67e11e13b5c42d97cb1fe071de53dea5502b3a9292e75e024
ghcr.io/advplyr/audiobookshelf@sha256:2d8bee3e87e860d67e11e13b5c42d97cb1fe071de53dea5502b3a9292e75e024: Pulling from advplyr/audiobookshelf
f18232174bc9: Already exists
05c1247b2bae: Pull complete
301aebe3d905: Pull complete
699b753813e6: Pull complete
7f00dbe3b80b: Pull complete
6299b7655c13: Pull complete
38240dec5faf: Pull complete
06015e64cd47: Pull complete
68b7db6e6838: Pull complete
Digest: sha256:2d8bee3e87e860d67e11e13b5c42d97cb1fe071de53dea5502b3a9292e75e024
Status: Downloaded newer image for ghcr.io/advplyr/audiobookshelf@sha256:2d8bee3e87e860d67e11e13b5c42d97cb1fe071de53dea5502b3a9292e75e024
ghcr.io/advplyr/audiobookshelf@sha256:2d8bee3e87e860d67e11e13b5c42d97cb1fe071de53dea5502b3a9292e75e024
root@r720-omv:~# docker image ls | grep audi
ghcr.io/advplyr/audiobookshelf <none> 9958782bff32 2 days ago 312MB
root@r720-omv:~#
What happens if you change your compose from :latest to :2.23.0?
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
Thanks for confirming. Out of curiosity, why did you have working_dir set? Did you do that yourself or see that in a guide?
Ive migrated from docker standalone to docker compose with a help of docker-autocompose 🤭
Ive migrated from docker standalone to docker compose with a help of docker-autocompose 🤭
Thanks, that is good to know that it is from a specific tool and something for us to look out for when other people are reporting upgrade issues.
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
This was my issue. For reference, when I made it, I just used normal docker compose, but it set the working directory as "/" (no quotes) according to what portainer is showing me. Apparently in this latest update, they changed this... Since the above quote didn't really specify on 'what to do', I just removed the "/" and left it blank, and that seems to have worked...
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
This was my issue. For reference, when I made it, I just used normal docker compose, but it set the working directory as "/" (no quotes) according to what portainer is showing me. Apparently in this latest update, they changed this... Since the above quote didn't really specify on 'what to do', I just removed the "/" and left it blank, and that seems to have worked...
Yeah, unless you are specifically doing something to try and edit stuff within the container or really know what you are doing, you should not set work_dir in a compose.
I had the same issue. Using Cosmos Server on a Ubuntu Server 24 and the composes get modified by Cosmos when it runs them. Whatever happened with a recent upgrade to Audiobookshelf my port mapping statements wouldn't "stick" in the compose and the container wouldn't stay started. To be clear on the solution, as above, I removed the "work_dir" entry completely in the compose and restarted the container. It restarted but was unaccessible because the ports. Then I could update the port mapping and it stuck. So, problem resolved. Thank you for posting these solutions. Appears to be resolved, but the updates going forward should look for this issue.
I had the same issue. Using Cosmos Server on a Ubuntu Server 24 and the composes get modified by Cosmos when it runs them. Whatever happened with a recent upgrade to Audiobookshelf my port mapping statements wouldn't "stick" in the compose and the container wouldn't stay started. To be clear on the solution, as above, I removed the "work_dir" entry completely in the compose and restarted the container. It restarted but was unaccessible because the ports. Then I could update the port mapping and it stuck. So, problem resolved. Thank you for posting these solutions. Appears to be resolved, but the updates going forward should look for this issue.
The work_dir and port being modified by other tools (such as Cosmos) is outside the control of the container (in this case Audiobookshelf). If your container manager/compose wrapper is caching previous versions or setting things incorrectly, you will need to make sure older versions of the container and image are removed when updating.
updates going forward should look for this issue.
You should file a bug report with Cosmos for modifying compose files that they shouldn't be touching. As nichwall stated, this is outside of ABS's control.
It's a fair point - I didn't mean to imply blame -- from the user's perspective it's hard to know where the problem arises, since there are always multiple systems. It appeared from the thread that ABS updates triggered a change that people were having problems with, and that the solution proposed worked. I honestly can't understand why Cosmos feels it has to modify the composes -- it's not ABS' issue for sure -- just pointing it out in the event there were any other ABS/Cosmos users and if the issue WAS with the update. Apologies.
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
This was my issue. For reference, when I made it, I just used normal docker compose, but it set the working directory as "/" (no quotes) according to what portainer is showing me. Apparently in this latest update, they changed this... Since the above quote didn't really specify on 'what to do', I just removed the "/" and left it blank, and that seems to have worked...
Yeah, unless you are specifically doing something to try and edit stuff within the container or really know what you are doing, you should not set
work_dirin a compose.
The thing for me, was that I didn't set a work_dir in compose. at least its not in the compose file i have in portainer. so idk when it got switched to that. just a curiosity i guess
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
Thank you very much. I confirm it fixed the issue for me too. I was stuck on image 2.21.0 and couldn't upgradE. Tried re-pulling the image many times, clearing /config and /metadata
It was just that the 2.21 image pushed "/" as a working dir where all versions after need "/app"
Not knowing that I had to re-build AND remove the working dir field to have the latest image pushing /app at the rebuild.
I learned how to fix this today. Thank you Internet 🥇
My problem resolved, i had working_dir set in my compose file and it looks like it has changed recently, the other thread pointed me towards this.
Thank you very much. I confirm it fixed the issue for me too. I was stuck on image 2.21.0 and couldn't upgradE. Tried re-pulling the image many times, clearing /config and /metadata
It was just that the 2.21 image pushed "/" as a working dir where all versions after need "/app"
Not knowing that I had to re-build AND remove the working dir field to have the latest image pushing /app at the rebuild.
I learned how to fix this today. Thank you Internet 🥇
Holy shit, THANK YOU! This fixed the issue. Been dealing with it for months...
I learned how to fix this today. Thank you Internet 🥇