omnivore/packages/api/Dockerfile

61 lines
2.2 KiB
Text
Raw Normal View History

2023-10-25 01:32:37 +00:00
FROM node:18.16 as builder
2022-02-11 17:24:33 +00:00
WORKDIR /app
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
2023-10-25 01:32:37 +00:00
RUN apt-get update && apt-get install -y g++ make python3
2022-02-11 17:24:33 +00:00
COPY package.json .
COPY yarn.lock .
COPY tsconfig.json .
COPY .prettierrc .
COPY .eslintrc .
COPY /packages/readabilityjs/package.json ./packages/readabilityjs/package.json
COPY /packages/api/package.json ./packages/api/package.json
2022-09-02 07:56:23 +00:00
COPY /packages/text-to-speech/package.json ./packages/text-to-speech/package.json
2022-10-06 05:06:11 +00:00
COPY /packages/content-handler/package.json ./packages/content-handler/package.json
2023-12-07 11:15:14 +00:00
COPY /packages/liqe/package.json ./packages/liqe/package.json
2022-02-11 17:24:33 +00:00
RUN yarn install --pure-lockfile
2022-02-11 17:24:33 +00:00
ADD /packages/readabilityjs ./packages/readabilityjs
ADD /packages/api ./packages/api
2022-09-02 07:56:23 +00:00
ADD /packages/text-to-speech ./packages/text-to-speech
2022-10-06 05:06:11 +00:00
ADD /packages/content-handler ./packages/content-handler
2023-12-07 11:15:14 +00:00
ADD /packages/liqe ./packages/liqe
2022-02-11 17:24:33 +00:00
2022-09-07 07:14:09 +00:00
RUN yarn workspace @omnivore/text-to-speech-handler build
2022-10-06 05:06:11 +00:00
RUN yarn workspace @omnivore/content-handler build
2023-12-07 11:15:14 +00:00
RUN yarn workspace @omnivore/liqe build
2022-02-11 17:24:33 +00:00
RUN yarn workspace @omnivore/api build
# After building, fetch the production dependencies
RUN rm -rf /app/packages/api/node_modules
RUN rm -rf /app/node_modules
RUN yarn install --pure-lockfile --production
2023-10-25 01:32:37 +00:00
FROM node:18.16 as runner
2024-02-21 05:28:40 +00:00
LABEL org.opencontainers.image.source="https://github.com/omnivore-app/omnivore"
2022-02-11 17:24:33 +00:00
2023-10-26 03:19:38 +00:00
RUN apt-get update && apt-get install -y netcat-openbsd
2022-02-11 17:24:33 +00:00
WORKDIR /app
ENV NODE_ENV production
ENV NODE_OPTIONS=--max-old-space-size=4096
ENV PORT=8080
COPY --from=builder /app/packages/api/dist /app/packages/api/dist
COPY --from=builder /app/packages/readabilityjs/ /app/packages/readabilityjs/
COPY --from=builder /app/packages/api/package.json /app/packages/api/package.json
COPY --from=builder /app/packages/api/node_modules /app/packages/api/node_modules
COPY --from=builder /app/node_modules /app/node_modules
2022-02-11 17:24:33 +00:00
COPY --from=builder /app/package.json /app/package.json
2022-09-02 07:56:23 +00:00
COPY --from=builder /app/packages/text-to-speech/ /app/packages/text-to-speech/
2022-10-08 01:24:09 +00:00
COPY --from=builder /app/packages/content-handler/ /app/packages/content-handler/
2023-12-07 11:15:14 +00:00
COPY --from=builder /app/packages/liqe/ /app/packages/liqe/
2022-02-11 17:24:33 +00:00
EXPOSE 8080
CMD ["yarn", "workspace", "@omnivore/api", "start"]