mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| ### STAGE 0: Build client ###
 | |
| FROM node:20-alpine AS build
 | |
| WORKDIR /client
 | |
| COPY /client /client
 | |
| RUN npm ci && npm cache clean --force
 | |
| RUN npm run generate
 | |
| 
 | |
| ### STAGE 1: Build server ###
 | |
| FROM node:20-alpine
 | |
| 
 | |
| ENV NODE_ENV=production
 | |
| 
 | |
| RUN apk update && \
 | |
|   apk add --no-cache --update \
 | |
|   curl \
 | |
|   tzdata \
 | |
|   ffmpeg \
 | |
|   make \
 | |
|   python3 \
 | |
|   g++ \
 | |
|   tini \
 | |
|   unzip
 | |
| 
 | |
| COPY --from=build /client/dist /client/dist
 | |
| COPY index.js package* /
 | |
| COPY server server
 | |
| 
 | |
| ARG TARGETPLATFORM
 | |
| 
 | |
| ENV NUSQLITE3_DIR="/usr/local/lib/nusqlite3"
 | |
| ENV NUSQLITE3_PATH="${NUSQLITE3_DIR}/libnusqlite3.so"
 | |
| 
 | |
| RUN case "$TARGETPLATFORM" in \
 | |
|   "linux/amd64") \
 | |
|   curl -L -o /tmp/library.zip "https://github.com/mikiher/nunicode-sqlite/releases/download/v1.2/libnusqlite3-linux-musl-x64.zip" ;; \
 | |
|   "linux/arm64") \
 | |
|   curl -L -o /tmp/library.zip "https://github.com/mikiher/nunicode-sqlite/releases/download/v1.2/libnusqlite3-linux-musl-arm64.zip" ;; \
 | |
|   *) echo "Unsupported platform: $TARGETPLATFORM" && exit 1 ;; \
 | |
|   esac && \
 | |
|   unzip /tmp/library.zip -d $NUSQLITE3_DIR && \
 | |
|   rm /tmp/library.zip
 | |
| 
 | |
| RUN npm ci --only=production
 | |
| 
 | |
| RUN apk del make python3 g++
 | |
| 
 | |
| EXPOSE 80
 | |
| 
 | |
| ENTRYPOINT ["tini", "--"]
 | |
| CMD ["node", "index.js"]
 |