file-uploader/Dockerfile

34 lines
789 B
Docker
Raw Normal View History

2024-03-18 09:48:13 +00:00
FROM node:lts-alpine AS base
WORKDIR /usr/src/app
2024-03-18 10:20:07 +00:00
FROM base AS install
2024-03-24 06:18:11 +00:00
RUN mkdir -p /temp/dev
2024-03-24 06:19:47 +00:00
COPY package.json yarn.lock /temp/dev/
2024-03-24 06:18:11 +00:00
RUN cd /temp/dev && yarn install
2024-03-18 10:20:07 +00:00
2024-03-24 06:18:11 +00:00
RUN mkdir -p /temp/prod
2024-03-24 06:19:47 +00:00
COPY package.json yarn.lock /temp/prod/
2024-03-24 06:18:11 +00:00
RUN cd /temp/prod && yarn install --omit=dev
2024-03-18 10:20:07 +00:00
2024-03-24 06:18:11 +00:00
FROM base AS prisma
COPY --from=install /temp/prod/node_modules node_modules
COPY . .
2024-03-18 10:20:07 +00:00
2024-03-24 06:18:11 +00:00
RUN npx prisma generate
2024-03-18 09:48:13 +00:00
2024-03-24 06:18:11 +00:00
FROM base AS prerelease
COPY --from=install /temp/dev/node_modules node_modules
COPY . .
2024-03-24 06:18:11 +00:00
RUN npx prisma generate
RUN npm run build
2024-03-18 09:48:13 +00:00
2024-03-24 06:18:11 +00:00
FROM base AS release
COPY --from=prisma /usr/src/app/prisma prisma
COPY --from=prisma /usr/src/app/node_modules node_modules
COPY --from=prerelease /usr/src/app/build/ ./
COPY --from=prerelease /usr/src/app/package.json .
2024-03-18 09:48:13 +00:00
EXPOSE 3000/tcp
2024-03-18 16:54:47 +00:00
CMD [ "node", "index.js" ]