Use Effect services for requests, AI tasks, and the RSS worker. Add admin accounts, feed sharing, and stored reading profiles. Add Biome, Effect tools, and Podman deployment with Caddy.
30 lines
998 B
Docker
30 lines
998 B
Docker
FROM docker.io/library/node:26-bookworm-slim AS build
|
|
|
|
WORKDIR /app
|
|
RUN npm install --global pnpm@11.25.0
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY apps/web/package.json apps/web/package.json
|
|
COPY packages/ui/package.json packages/ui/package.json
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
RUN pnpm build
|
|
|
|
FROM docker.io/library/node:26-bookworm-slim AS runtime
|
|
|
|
ENV NODE_ENV=production HOST=0.0.0.0 PORT=3000
|
|
WORKDIR /app/apps/web
|
|
|
|
COPY --from=build --chown=node:node /app/node_modules /app/node_modules
|
|
COPY --from=build --chown=node:node /app/package.json /app/package.json
|
|
COPY --from=build --chown=node:node /app/tsconfig.json /app/tsconfig.json
|
|
COPY --from=build --chown=node:node /app/apps/web /app/apps/web
|
|
COPY --from=build --chown=node:node /app/packages/ui /app/packages/ui
|
|
COPY --chown=node:node --chmod=0755 scripts/entrypoint.sh /app/scripts/entrypoint.sh
|
|
|
|
USER node
|
|
EXPOSE 3000
|
|
ENTRYPOINT ["/app/scripts/entrypoint.sh"]
|
|
CMD ["node", ".output/server/index.mjs"]
|