- copy the Dockerfile (original effort and kudos goes to dymk) and the shell script to a folder on your machine (I keep min close to my docker compose for ABS)
- make shell script executable
- run shell script, this should ues docker to build ffmpeg and ffprobe with xHE-AAC support and copy the binaries to the current folder
- volume in the built ffmpeg and ffprobe to the audiobookshelf container (see the latest additions to volumes in the example compose):
### EXAMPLE DOCKER COMPOSE ###
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
# ABS runs on port 13378 by default. If you want to change
# the port, only change the external port, not the internal port
ports:
- 13378:80
volumes:
# These volumes are needed to keep your library persistent
# and allow media to be accessed by the ABS server.
# The path to the left of the colon is the path on your computer,
# and the path to the right of the colon is where the data is
# available to ABS in Docker.
# You can change these media directories or add as many as you want
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
# The metadata directory can be stored anywhere on your computer
- ./metadata:/metadata
# The config directory needs to be on the same physical machine
# you are running ABS on
- ./config:/config
- /path/to/generated/ffmpeg:/usr/bin/ffmpeg:ro
- /path/to/generated/ffprobe:/usr/bin/ffprobe:ro
restart: unless-stopped
# You can use the following user directive to run the ABS
# docker container as a specific user. You will need to change
# the UID and GID to the correct values for your user.
# user: 1000:1000
- start your abs as normal
I've added both binaries with the read only flag (:ro
) in order to not overwrite the binaries from inside the container for whatever reason.
If and when ABS updates the version of ffmpeg used, you also need to generate a new version of ffprobe, which you can do by changing the targeted version in the Dockerfile