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.
		
		
		
		
		
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			794 B
		
	
	
	
		
			Docker
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			794 B
		
	
	
	
		
			Docker
		
	
# build front-end
 | 
						|
FROM node:lts-alpine AS frontend
 | 
						|
 | 
						|
RUN npm install pnpm -g
 | 
						|
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
COPY ./package.json /app
 | 
						|
 | 
						|
COPY ./pnpm-lock.yaml /app
 | 
						|
 | 
						|
RUN pnpm install
 | 
						|
 | 
						|
COPY . /app
 | 
						|
 | 
						|
RUN pnpm run build
 | 
						|
 | 
						|
# build backend
 | 
						|
FROM node:lts-alpine as backend
 | 
						|
 | 
						|
RUN npm install pnpm -g
 | 
						|
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
COPY /service/package.json /app
 | 
						|
 | 
						|
COPY /service/pnpm-lock.yaml /app
 | 
						|
 | 
						|
RUN pnpm install
 | 
						|
 | 
						|
COPY /service /app
 | 
						|
 | 
						|
RUN pnpm build
 | 
						|
 | 
						|
# service
 | 
						|
FROM node:lts-alpine
 | 
						|
 | 
						|
RUN npm install pnpm -g
 | 
						|
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
COPY /service/package.json /app
 | 
						|
 | 
						|
COPY /service/pnpm-lock.yaml /app
 | 
						|
 | 
						|
RUN pnpm install --production && rm -rf /root/.npm /root/.pnpm-store /usr/local/share/.cache /tmp/*
 | 
						|
 | 
						|
COPY /service /app
 | 
						|
 | 
						|
COPY --from=frontend /app/dist /app/public
 | 
						|
 | 
						|
COPY --from=backend /app/build /app/build
 | 
						|
 | 
						|
EXPOSE 3002
 | 
						|
 | 
						|
CMD ["pnpm", "run", "prod"]
 |