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"]
|