2025-01-27 12:33:16 +00:00
|
|
|
FROM node:22.12 AS builder
|
2022-02-11 17:24:33 +00:00
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
2023-10-25 01:32:37 +00:00
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
RUN apt-get update && apt-get install -y g++ make python3 && apt-get clean && rm -rf /var/lib/apt/lists/*
|
2022-02-11 17:24:33 +00:00
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
COPY package.json yarn.lock tsconfig.json .prettierrc .eslintrc ./
|
|
|
|
|
COPY packages ./packages
|
2022-02-11 17:24:33 +00:00
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
# Remove all except needed packages
|
|
|
|
|
RUN find packages -mindepth 1 -type d \
|
|
|
|
|
! -regex '^packages/\(api\|readabilityjs\|text-to-speech\|content-handler\|liqe\|utils\)\(/.*\)?' \
|
|
|
|
|
-exec rm -rf {} +
|
2022-02-11 17:24:33 +00:00
|
|
|
|
2025-07-29 10:11:08 +00:00
|
|
|
RUN yarn install --pure-lockfile --network-timeout=300000 && \
|
2025-01-27 12:33:16 +00:00
|
|
|
yarn workspace @omnivore/utils build && \
|
|
|
|
|
yarn workspace @omnivore/text-to-speech-handler build && \
|
|
|
|
|
yarn workspace @omnivore/content-handler build && \
|
|
|
|
|
yarn workspace @omnivore/liqe build && \
|
|
|
|
|
yarn workspace @omnivore/api build && \
|
|
|
|
|
rm -rf /app/packages/api/node_modules /app/node_modules && \
|
2025-07-29 10:11:08 +00:00
|
|
|
yarn install --pure-lockfile --production --network-timeout=300000
|
2022-02-11 17:24:33 +00:00
|
|
|
|
|
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
FROM node:22.12-alpine 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
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
RUN apk update && apk add netcat-openbsd && rm -rf /var/cache/apk/*
|
2023-10-26 03:19:38 +00:00
|
|
|
|
2022-02-11 17:24:33 +00:00
|
|
|
WORKDIR /app
|
|
|
|
|
|
2025-01-27 12:33:16 +00:00
|
|
|
ENV NODE_ENV=production
|
2022-02-11 17:24:33 +00:00
|
|
|
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
|
2022-04-04 16:54:04 +00:00
|
|
|
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/
|
2024-07-04 08:59:08 +00:00
|
|
|
COPY --from=builder /app/packages/utils/ /app/packages/utils/
|
2025-01-27 12:33:16 +00:00
|
|
|
|
2022-02-11 17:24:33 +00:00
|
|
|
EXPOSE 8080
|
|
|
|
|
|
|
|
|
|
CMD ["yarn", "workspace", "@omnivore/api", "start"]
|