Ship production deployment and runtime observability
This commit is contained in:
parent
267665bb35
commit
775dd61963
1 changed files with 3712 additions and 175 deletions
44
Dockerfile
Normal file
44
Dockerfile
Normal 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"]
|
||||
Loading…
Reference in a new issue