mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-31 10:27:01 -04:00 
			
		
		
		
	Merge pull request #4150 from pinjeff/docker-build
Reduce final docker image size
This commit is contained in:
		
						commit
						5cadc8d90f
					
				
							
								
								
									
										31
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								Dockerfile
									
									
									
									
									
								
							| @ -1,29 +1,25 @@ | ||||
| ### STAGE 0: Build client ### | ||||
| FROM node:20-alpine AS build | ||||
| FROM node:20-alpine AS build-client | ||||
| WORKDIR /client | ||||
| COPY /client /client | ||||
| RUN npm ci && npm cache clean --force | ||||
| RUN npm run generate | ||||
| 
 | ||||
| ### STAGE 1: Build server ### | ||||
| FROM node:20-alpine | ||||
| FROM node:20-alpine AS build-server | ||||
| 
 | ||||
| ENV NODE_ENV=production | ||||
| 
 | ||||
| RUN apk update && \ | ||||
|   apk add --no-cache --update \ | ||||
| RUN 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 | ||||
| WORKDIR /server | ||||
| COPY index.js package* /server | ||||
| COPY /server /server/server | ||||
| 
 | ||||
| ARG TARGETPLATFORM | ||||
| 
 | ||||
| @ -42,7 +38,20 @@ RUN case "$TARGETPLATFORM" in \ | ||||
| 
 | ||||
| RUN npm ci --only=production | ||||
| 
 | ||||
| RUN apk del make python3 g++ | ||||
| ### STAGE 2: Create minimal runtime image ### | ||||
| FROM node:20-alpine | ||||
| 
 | ||||
| # Install only runtime dependencies | ||||
| RUN apk add --no-cache --update \ | ||||
|   tzdata \ | ||||
|   ffmpeg \ | ||||
|   tini | ||||
| 
 | ||||
| WORKDIR /app | ||||
| 
 | ||||
| # Copy compiled frontend and server from build stages | ||||
| COPY --from=build-client /client/dist /app/client/dist | ||||
| COPY --from=build-server /server /app | ||||
| 
 | ||||
| EXPOSE 80 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										0
									
								
								tailwind.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tailwind.config.js
									
									
									
									
									
										Normal file
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user