[PR #4299] [MERGED] Fix Dockerfile to include nunicode in the final stage #4209

Closed
opened 2026-04-25 00:18:49 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/4299
Author: @advplyr
Created: 5/16/2025
Status: Merged
Merged: 5/16/2025
Merged by: @advplyr

Base: masterHead: fix_dockerfile_nunicode


📝 Commits (1)

  • 49997a1 Fix Dockerfile to include nunicode in the final stage

📊 Changes

1 file changed (+14 additions, -5 deletions)

View changed files

📝 Dockerfile (+14 -5)

📄 Description

Brief summary

In v2.22.0 the Dockerfile was improved to reduce the final image size (in #4150).

The sqlite extension we use for unicode, Nunicode, was not being included in the final stage.

Since nunicode is an optional binary it didn't break anything, but the unicode unaccent and case-foldings provided by nunicode aren't being used.

Which issue is fixed?

Fixes #4297

Some container managers cache the env variables and since nunicode wasn't in the v2.22.0 Docker image, the cached env variable NUSQLITE3_PATH is a path that didn't exist.

The issues being reported about updating to v2.22.0 isn't technically a bug with Abs.

Explained here https://github.com/advplyr/audiobookshelf/issues/4292#issuecomment-2887503644 (thanks @Vito0912)

In-depth Description

Additional context on binaries in Abs

The Docker image should include all the necessary binaries for Abs (ffmpeg, ffprobe, nunicode).

For all other install methods the BinaryManager handles downloading binaries when necessary.

The Binary Manager is skipped when the SOURCE env variable is docker
https://github.com/advplyr/audiobookshelf/blob/8d0434143c1475c0f8c20a370d7504381dd3d830/server/Server.js#L157-L159

How have you tested this?

An easy test to check if nunicode is working is maße should be searchable by masse

image

Screenshots

Server startup logs

image


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/advplyr/audiobookshelf/pull/4299 **Author:** [@advplyr](https://github.com/advplyr) **Created:** 5/16/2025 **Status:** ✅ Merged **Merged:** 5/16/2025 **Merged by:** [@advplyr](https://github.com/advplyr) **Base:** `master` ← **Head:** `fix_dockerfile_nunicode` --- ### 📝 Commits (1) - [`49997a1`](https://github.com/advplyr/audiobookshelf/commit/49997a13369245580d6d8ff3aa077a29e46951ba) Fix Dockerfile to include nunicode in the final stage ### 📊 Changes **1 file changed** (+14 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `Dockerfile` (+14 -5) </details> ### 📄 Description ## Brief summary In v2.22.0 the Dockerfile was improved to reduce the final image size (in #4150). The sqlite extension we use for unicode, [Nunicode](https://github.com/advplyr/audiobookshelf/pull/3468), was not being included in the final stage. Since nunicode is an optional binary it didn't break anything, but the unicode unaccent and case-foldings provided by nunicode aren't being used. ## Which issue is fixed? Fixes #4297 Some container managers cache the env variables and since nunicode wasn't in the v2.22.0 Docker image, the cached env variable `NUSQLITE3_PATH` is a path that didn't exist. The issues being reported about updating to v2.22.0 isn't technically a bug with Abs. Explained here https://github.com/advplyr/audiobookshelf/issues/4292#issuecomment-2887503644 (thanks @Vito0912) ## In-depth Description ### Additional context on binaries in Abs The Docker image should include all the necessary binaries for Abs (ffmpeg, ffprobe, nunicode). For all other install methods the [BinaryManager](https://github.com/advplyr/audiobookshelf/blob/8d0434143c1475c0f8c20a370d7504381dd3d830/server/managers/BinaryManager.js) handles downloading binaries when necessary. The Binary Manager is skipped when the `SOURCE` env variable is `docker` https://github.com/advplyr/audiobookshelf/blob/8d0434143c1475c0f8c20a370d7504381dd3d830/server/Server.js#L157-L159 ## How have you tested this? An easy test to check if nunicode is working is `maße` should be searchable by `masse` ![image](https://github.com/user-attachments/assets/4112d195-ea29-442a-8192-cc9e7ad12eee) ## Screenshots Server startup logs ![image](https://github.com/user-attachments/assets/50ab6f7b-8bff-4926-b7d4-3e3c2cefeb6e) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-04-25 00:18:49 +02:00
adam closed this issue 2026-04-25 00:18:49 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#4209