lazyBoy/image/api/Dockerfile

40 lines
1.5 KiB
Docker
Raw Normal View History

2026-09-03 16:16:34 +00:00
FROM node:22-bookworm-slim AS web
WORKDIR /src/apps/web
COPY apps/web/package.json apps/web/package-lock.json ./
RUN npm ci
COPY apps/web/index.html apps/web/tsconfig.json apps/web/vite.config.ts ./
COPY apps/web/src src
RUN npm run build
2026-09-03 23:43:37 +00:00
FROM rust:1-trixie AS build
2026-09-03 12:46:14 +00:00
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
COPY crates crates
COPY migrations migrations
2026-09-03 16:16:34 +00:00
COPY apps/web apps/web
2026-09-03 12:46:14 +00:00
RUN cargo build --release -p lazyboy-api
2026-09-03 23:43:37 +00:00
FROM debian:trixie-slim
2026-09-04 09:08:56 +00:00
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates python3 python3-pip python3-lxml \
&& pip3 install --break-system-packages --no-cache-dir mcp-server-fetch \
&& rm -rf /var/lib/apt/lists/*
COPY --from=web /usr/local/bin/node /usr/local/bin/node
COPY --from=web /usr/local/lib/node_modules/npm /usr/local/lib/node_modules/npm
2026-09-03 12:46:14 +00:00
COPY --from=build /src/target/release/lazyboy-api /usr/local/bin/lazyboy-api
2026-09-03 16:16:34 +00:00
COPY --from=web /src/apps/web/dist /web
2026-09-04 09:08:56 +00:00
RUN ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \
&& ln -sf /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx \
&& npm install -g --omit=dev \
@modelcontextprotocol/server-memory \
@modelcontextprotocol/server-sequential-thinking \
@notionhq/notion-mcp-server \
&& npm cache clean --force \
&& node -v && npx --version \
&& python3 -c "import mcp_server_fetch"
2026-09-03 12:46:14 +00:00
ENV LAZYBOY_WEB_DIR=/web
2026-09-04 09:08:56 +00:00
ENV NPM_CONFIG_UPDATE_NOTIFIER=false
ENV NPM_CONFIG_FUND=false
2026-09-03 12:46:14 +00:00
EXPOSE 3100
CMD ["lazyboy-api"]