You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			23 lines
		
	
	
		
			686 B
		
	
	
	
		
			Docker
		
	
			
		
		
	
	
			23 lines
		
	
	
		
			686 B
		
	
	
	
		
			Docker
		
	
# adapted from example on pnpm.io
 | 
						|
FROM node:20-slim AS base
 | 
						|
ENV PNPM_HOME="/pnpm"
 | 
						|
ENV PATH="$PNPM_HOME:$PATH"
 | 
						|
RUN corepack enable
 | 
						|
COPY package.json pnpm-lock.yaml /app/
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
FROM base AS prod-deps
 | 
						|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
 | 
						|
 | 
						|
# install dev dependencies which are needed for building, such as typescript:
 | 
						|
FROM base AS build
 | 
						|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
 | 
						|
COPY tsconfig.json /app/
 | 
						|
COPY src /app/src
 | 
						|
RUN pnpm run build
 | 
						|
 | 
						|
FROM base
 | 
						|
COPY --from=prod-deps /app/node_modules /app/node_modules
 | 
						|
COPY --from=build /app/dist /app/dist
 | 
						|
WORKDIR /app/dist
 | 
						|
CMD [ "node", "index.js" ] |