* Add state and taskName in elastic page mappings * Add state and taskName in elastic page interface * Create page with PROCESSING state before scrapping * Update createArticleRequest API * Fix tests * Add default state for pages * Update createArticle API * Update save page * Update save file * Update saving item description * Show unable to parse content for failed page * Fix date parsing * Search for not failed pages * Fix tests * Add test for saveUrl * Update get article saving request api * Update get article test * Add test for articleSavingRequest API * Add test for failure * Return new page id if clientRequestId empty * Update clientRequestId in savePage * Update clientRequestId in saveFile * Replace article with slug in articleSavingRequest * Add slug in articleSavingRequest response * Depreciate article * Use slug in web * Remove article and highlight fragments * Query article.slug on Prod * Show unable to parse description for failed page * Fix a bug having duplicate pages when saving the same url multiple times * Add state in response * Rename variables in removeArticle API * Rename state * Add state in response in web * Make state an enum * Open temporary page by link id * Use an empty reader view as the background for loading pages * Progressively load the article page as content is loaded * Add includePending flag in getArticles API * Set includePending = true in web * Add elastic update mappings in migration script * Add elastic mappings in docker image * Move index_settings.json to migrate package * Remove elastic index creation in api * Move elastic migrations to a separate directory * Remove index_settings from api docker image Co-authored-by: Jackson Harper <jacksonh@gmail.com>
46 lines
1.3 KiB
Docker
46 lines
1.3 KiB
Docker
FROM node:14.18-alpine as builder
|
|
|
|
WORKDIR /app
|
|
|
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
|
|
|
|
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
|
|
|
|
RUN yarn install --pure-lockfile
|
|
|
|
ADD /packages/readabilityjs ./packages/readabilityjs
|
|
ADD /packages/api ./packages/api
|
|
|
|
RUN yarn
|
|
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
|
|
|
|
FROM node:14.18-alpine as runner
|
|
|
|
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
|
|
COPY --from=builder /app/package.json /app/package.json
|
|
EXPOSE 8080
|
|
|
|
CMD ["yarn", "workspace", "@omnivore/api", "start"]
|