fabro/docker/Dockerfile
Bryan Helmkamp 51d764f6e3 Pin GHA action, Docker base images, and mintlify version
Addresses supply chain hardening items from #160:
- Pin taiki-e/install-action to commit SHA
- Pin rust:1-bookworm and oven/bun:1 to image digests
- Pin mintlify to 4.2.507

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 17:52:53 -04:00

30 lines
1.1 KiB
Docker

FROM rust:1-bookworm@sha256:4ec71e955e6c08aeb238885083222ddff79d82eb87654a96c76e38e94da1a53b AS rust-builder
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY lib/crates lib/crates
COPY openapi openapi
RUN cargo build --release --bin fabro
FROM oven/bun:1@sha256:c9aa897b6028d54e510c4babd41bcdd481ad4a4b5030ad31135a9cabfe2c24df
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 make g++ ca-certificates nodejs npm && \
rm -rf /var/lib/apt/lists/*
RUN npm i -g mintlify@4.2.507 && \
sed -i 's/const version = __VERSION__/const version = "0.0.0"/' \
/usr/local/lib/node_modules/mintlify/node_modules/katex/dist/katex.mjs
WORKDIR /app
COPY --from=rust-builder /app/target/release/fabro /usr/local/bin/fabro
COPY package.json bun.lock ./
COPY apps/fabro-web/package.json apps/fabro-web/
COPY lib/packages/fabro-api-client/package.json lib/packages/fabro-api-client/
RUN bun install --frozen-lockfile
COPY apps/fabro-web apps/fabro-web
COPY lib/packages/fabro-api-client lib/packages/fabro-api-client
COPY docs docs
COPY docker/entrypoint.ts .
ENTRYPOINT ["bun", "run", "entrypoint.ts"]