audiobookshelf/Dockerfile

53 lines
1.1 KiB
Text
Raw Normal View History

2022-12-19 20:51:51 -08:00
### STAGE 0: Get deps ###
FROM --platform=${TARGETPLATFORM} node:16-alpine AS deps
2021-08-17 17:01:11 -05:00
WORKDIR /client
2022-12-19 20:51:51 -08:00
COPY /client/package* ./
RUN npm ci
### STAGE 1: Build client ###
FROM --platform=${TARGETPLATFORM} node:16-alpine AS build
WORKDIR /client
2021-08-17 17:01:11 -05:00
COPY /client /client
2022-12-19 20:51:51 -08:00
COPY --from=deps /client/node_modules /client/node_modules
2021-08-17 17:01:11 -05:00
RUN npm run generate
2022-12-19 20:51:51 -08:00
### STAGE 2: Build server ###
FROM --platform=${TARGETPLATFORM} ghcr.io/linuxserver/baseimage-alpine:3.15 AS runner
2022-12-19 20:51:51 -08:00
ENV NODE_ENV=production \
TZ="Etc/UTC"
2022-12-19 20:51:51 -08:00
COPY --from=sandreas/tone:v0.1.2 /usr/local/bin/tone /usr/local/bin/
COPY --from=build /client/dist /app/audiobookshelf/client/dist
2022-12-19 20:51:51 -08:00
COPY index.js package* readme.md LICENSE Dockerfile /app/audiobookshelf/
COPY server /app/audiobookshelf/server
RUN \
apk add --upgrade --no-cache \
ffmpeg \
nodejs \
npm && \
cd app/audiobookshelf && \
npm ci --omit-dev
HEALTHCHECK \
--interval=30s \
--timeout=3s \
--start-period=10s \
CMD curl -f http://127.0.0.1/healthcheck || exit 1
2022-12-19 20:51:51 -08:00
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 80
VOLUME /config /metadata