Ship production deployment and runtime observability

This commit is contained in:
ms2k 2026-07-18 04:22:14 +09:00
commit 775dd61963

44
Dockerfile Normal file
View file

@ -0,0 +1,44 @@
# syntax=docker/dockerfile:1.7@sha256:a57df69d0ea827fb7266491f2813635de6f17269be881f696fbfdf2d83dda33e
ARG RUST_IMAGE=docker.io/library/rust:1.97.0-bookworm@sha256:8fa55b2f3ddf97471ab6a767bfa3f37e6bad0986ba823e75fea57e2a2a5c3073
ARG NODE_IMAGE=docker.io/library/node:24.18.0-bookworm@sha256:5711a0d445a1af54af9589066c646df387d1831a608226f4cd694fc59e745059
ARG CARGO_BUILD_JOBS=4
FROM ${RUST_IMAGE} AS rust-build
ARG CARGO_BUILD_JOBS
WORKDIR /workspace
COPY Cargo.toml Cargo.lock rust-toolchain.toml ./
COPY .config .config
COPY contracts contracts
COPY crates crates
COPY docs/api docs/api
RUN cargo build --release --locked --jobs ${CARGO_BUILD_JOBS} --package remora-api --package remora-worker --bins
FROM ${RUST_IMAGE} AS api
COPY --from=rust-build /workspace/target/release/remora-api /usr/local/bin/remora-api
USER 65532:65532
ENTRYPOINT ["/usr/local/bin/remora-api"]
FROM ${RUST_IMAGE} AS worker
COPY --from=rust-build /workspace/target/release/remora-worker /usr/local/bin/remora-worker
USER 65532:65532
ENTRYPOINT ["/usr/local/bin/remora-worker"]
FROM ${NODE_IMAGE} AS web-build
ENV NODE_OPTIONS=--max-old-space-size=4096
WORKDIR /workspace
RUN corepack enable
COPY web/package.json web/pnpm-lock.yaml web/pnpm-workspace.yaml ./
COPY web/tools tools
RUN pnpm install --frozen-lockfile
COPY web/index.html web/tsconfig*.json web/vite.config.ts ./
COPY web/public public
COPY web/src src
RUN pnpm build
FROM ${NODE_IMAGE} AS web
WORKDIR /app
COPY --from=web-build /workspace/dist dist
COPY web/server.mjs server.mjs
USER 65532:65532
ENTRYPOINT ["node", "/app/server.mjs"]