linuxserver'ified image with the preferred aac lib ffmpeg build
10K+
# syntax=docker/dockerfile:1.6-labs
ARG GIT_TAG=${GIT_TAG:-master}
ARG BASE_IMAGE=${BASE_IMAGE:-ghcr.io/linuxserver/baseimage-alpine:3.15}
### STAGE 0: Get deps ###
FROM node:16-alpine AS deps
ARG GIT_TAG
ADD https://github.com/advplyr/audiobookshelf.git#${GIT_TAG} audiobookshelf
WORKDIR /client
RUN cp /audiobookshelf/client/package* ./
RUN npm ci
### STAGE 1: Build client ###
FROM node:16-alpine AS build
COPY ./audiobookshelf/root /final
COPY --from=sandreas/tone:v0.1.5 /usr/local/bin/tone /final/usr/local/bin/
COPY --from=ceramicwhite/static-ffmpeg:latest /ffmpeg /ffprobe /final/usr/bin/
COPY --from=deps /audiobookshelf/index.js /audiobookshelf/package* /audiobookshelf/readme.md /audiobookshelf/LICENSE /audiobookshelf/Dockerfile /final/app/
COPY --from=deps /audiobookshelf/server /final/app/server
COPY --from=deps /audiobookshelf/client /client
COPY --from=deps /client/node_modules /client/node_modules
RUN cd /client && \
npm run generate
RUN mkdir -p /final/app/client
RUN mv /client/dist /final/app/client/
### STAGE 2: Server ###
FROM ${BASE_IMAGE} AS runner
ARG \
BUILDPLATFORM \
BUILDOS \
BUILDARCH \
TARGETPLATFORM \
TARGETOS \
TARGETARCH \
TARGETOS \
GIT_TAG \
BASE_IMAGE
ENV \
NODE_ENV=${NODE_ENV:-production} \
TZ=${TZ:-UTC} \
FFMPEG_PATH=/usr/bin/ffmpeg \
FFPROBE_PATH=/usr/bin/ffprobe \
PORT=${PORT:-80} \
PUID=${PUID:-1000} \
PGID=${PGID:-1000}
COPY --from=build /final/ /
RUN \
apk --update --upgrade --no-cache add \
ca-certificates \
tzdata \
nodejs=16.20.2-r0 \
npm \
jq && \
update-ca-certificates && \
cd /app && \
npm ci --omit-dev
EXPOSE 80
Content type
Image
Digest
sha256:3b3b508c4…
Size
176.5 MB
Last updated
over 1 year ago
docker pull ceramicwhite/audiobookshelf