Luncher/Dockerfile

43 lines
806 B
Docker

# Builder
FROM node:18-alpine3.18 AS builder
WORKDIR /build
COPY package.json .
COPY yarn.lock .
COPY server/package.json ./server/
COPY client/package.json ./client/
RUN yarn install --frozen-lockfile
COPY server/tsconfig.json ./server/
COPY server/src ./server/src/
COPY client/tsconfig.json ./client/
COPY client/src ./client/src
COPY client/public ./client/public
COPY types ./types/
WORKDIR /build/server
RUN yarn build
WORKDIR /build/client
RUN yarn build
# Runner
FROM node:18-alpine3.18
ENV LANG cs_CZ.UTF-8
ENV NODE_ENV production
WORKDIR /app
COPY --from=builder /build/node_modules ./node_modules
COPY --from=builder /build/server/dist ./
COPY --from=builder /build/client/build ./public
COPY /server/.env.production ./server/src
EXPOSE 3000
CMD [ "node", "./server/src/index.js" ]