mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-12 10:48:19 -04:00
619b8ce021
# Description of Changes Necessary for pulling in rolldown. # API and ABI breaking changes None # Expected complexity level and risk 1, with the caveat that this updates the Rust version and therefore touches all the code. # Testing - [ ] Just the automated testing
48 lines
1.4 KiB
Docker
48 lines
1.4 KiB
Docker
ARG CARGO_PROFILE=release
|
|
|
|
|
|
FROM rust:1.90.0 AS chef
|
|
RUN rust_target=$(rustc -vV | awk '/^host:/{ print $2 }') && \
|
|
curl https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-$rust_target.tgz -fL | tar xz -C $CARGO_HOME/bin
|
|
RUN cargo binstall -y cargo-chef@0.1.70
|
|
WORKDIR /usr/src/app
|
|
|
|
FROM chef AS planner
|
|
COPY . .
|
|
RUN cargo chef prepare --recipe-path recipe.json
|
|
|
|
FROM chef AS builder
|
|
|
|
RUN cargo binstall -y cargo-watch@8.4.0
|
|
RUN cargo binstall -y flamegraph@0.6.2
|
|
|
|
COPY --from=planner /usr/src/app/recipe.json .
|
|
|
|
ENV CARGO_INCREMENTAL=0
|
|
|
|
ARG CARGO_PROFILE=release
|
|
|
|
RUN cargo chef cook -p spacetimedb-standalone --profile=${CARGO_PROFILE}
|
|
|
|
COPY . .
|
|
RUN cargo build -p spacetimedb-standalone --profile=${CARGO_PROFILE} --locked
|
|
|
|
FROM builder as env-dev
|
|
RUN mkdir -p /stdb/data && ln -s /usr/src/app/crates/standalone/config.toml /stdb/data/config.toml
|
|
ENV PATH="/usr/src/app/target/debug:${PATH}"
|
|
|
|
FROM debian as env-release
|
|
RUN apt-get update && \
|
|
apt-get install -y ca-certificates libssl-dev && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
COPY --from=builder /usr/src/app/target/release/spacetimedb-standalone /usr/local/bin/
|
|
COPY --from=builder /usr/src/app/crates/standalone/config.toml /stdb/data/config.toml
|
|
|
|
FROM env-${CARGO_PROFILE}
|
|
|
|
EXPOSE 3000
|
|
|
|
ENV RUST_BACKTRACE=1
|
|
ENTRYPOINT ["spacetimedb-standalone"]
|
|
CMD ["start", "--data-dir=/stdb/data", "--jwt-pub-key-path=/etc/spacetimedb/id_ecdsa.pub", "--jwt-priv-key-path=/etc/spacetimedb/id_ecdsa"]
|