71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# Builder
 | 
						|
FROM node:18-alpine3.18 AS builder
 | 
						|
 | 
						|
WORKDIR /build
 | 
						|
 | 
						|
# Zkopírování závislostí - server
 | 
						|
COPY server/package.json ./server/
 | 
						|
COPY server/yarn.lock ./server/
 | 
						|
 | 
						|
# Zkopírování závislostí - klient
 | 
						|
COPY client/package.json ./client/
 | 
						|
COPY client/yarn.lock ./client/
 | 
						|
 | 
						|
# Instalace závislostí - server
 | 
						|
WORKDIR /build/server
 | 
						|
RUN yarn install --frozen-lockfile
 | 
						|
 | 
						|
# Instalace závislostí - klient
 | 
						|
WORKDIR /build/client
 | 
						|
RUN yarn install --frozen-lockfile
 | 
						|
 | 
						|
WORKDIR /build
 | 
						|
 | 
						|
# Zkopírování build závislostí - server
 | 
						|
COPY server/tsconfig.json ./server/
 | 
						|
COPY server/src ./server/src/
 | 
						|
 | 
						|
# Zkopírování build závislostí - klient
 | 
						|
COPY client/tsconfig.json ./client/
 | 
						|
COPY client/vite.config.ts ./client/
 | 
						|
COPY client/vite-env.d.ts ./client/
 | 
						|
COPY client/index.html ./client/
 | 
						|
COPY client/src ./client/src
 | 
						|
COPY client/public ./client/public
 | 
						|
 | 
						|
# Zkopírování společných typů
 | 
						|
COPY types ./types/
 | 
						|
 | 
						|
# Sestavení serveru
 | 
						|
WORKDIR /build/server
 | 
						|
RUN yarn build
 | 
						|
 | 
						|
# Sestavení klienta
 | 
						|
WORKDIR /build/client
 | 
						|
RUN yarn build
 | 
						|
 | 
						|
# Runner
 | 
						|
FROM node:18-alpine3.18
 | 
						|
ENV LANG cs_CZ.UTF-8
 | 
						|
ENV NODE_ENV production
 | 
						|
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
# Vykopírování sestaveného serveru
 | 
						|
COPY --from=builder /build/server/node_modules ./server/node_modules
 | 
						|
COPY --from=builder /build/server/dist ./
 | 
						|
COPY server/resources ./server/resources
 | 
						|
 | 
						|
# Vykopírování sestaveného klienta
 | 
						|
COPY --from=builder /build/client/dist ./public
 | 
						|
 | 
						|
# Zkopírování produkčních .env serveru
 | 
						|
COPY /server/.env.production ./server/src
 | 
						|
 | 
						|
# Zkopírování konfigurace easter eggů
 | 
						|
# TODO tohle spadne když nebude existovat!
 | 
						|
COPY /server/.easter-eggs.json ./server/
 | 
						|
 | 
						|
EXPOSE 3000
 | 
						|
 | 
						|
CMD [ "node", "./server/src/index.js" ] |