mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-07-07 13:05:02 +00:00

Some checks are pending
tinymist::ci / build-vscode-others (push) Blocked by required conditions
tinymist::ci / publish-vscode (push) Blocked by required conditions
tinymist::ci / build-vsc-assets (push) Blocked by required conditions
tinymist::ci / build-vscode (push) Blocked by required conditions
tinymist::ci / Duplicate Actions Detection (push) Waiting to run
tinymist::ci / Check Clippy, Formatting, Completion, Documentation, and Tests (Linux) (push) Waiting to run
tinymist::ci / Check Minimum Rust version and Tests (Windows) (push) Waiting to run
tinymist::ci / E2E Tests (darwin-arm64 on macos-latest) (push) Blocked by required conditions
tinymist::ci / E2E Tests (linux-x64 on ubuntu-22.04) (push) Blocked by required conditions
tinymist::ci / E2E Tests (linux-x64 on ubuntu-latest) (push) Blocked by required conditions
tinymist::ci / E2E Tests (win32-x64 on windows-2019) (push) Blocked by required conditions
tinymist::ci / E2E Tests (win32-x64 on windows-latest) (push) Blocked by required conditions
tinymist::ci / prepare-build (push) Waiting to run
tinymist::ci / build-binary (push) Blocked by required conditions
tinymist::gh_pages / build-gh-pages (push) Waiting to run
* fix: make real onSave export conditions * fix: remove fix * feat: pass export tests * fix: revert bootstrap changes * feat: reduce num of exports * fix: diag tests
48 lines
1.5 KiB
Docker
48 lines
1.5 KiB
Docker
# ```shell
|
|
# docker build -t myriaddreamin/tinymist:latest .
|
|
# ```
|
|
#
|
|
# ## References
|
|
#
|
|
# https://stackoverflow.com/questions/58473606/cache-rust-dependencies-with-docker-build
|
|
# https://stackoverflow.com/a/64528456
|
|
# https://depot.dev/blog/rust-dockerfile-best-practices
|
|
|
|
ARG RUST_VERSION=1.85.1
|
|
|
|
FROM rust:${RUST_VERSION}-bookworm AS base
|
|
RUN apt-get install -y git
|
|
RUN cargo install sccache --version ^0.7
|
|
RUN cargo install cargo-chef --version ^0.1
|
|
ENV RUSTC_WRAPPER=sccache SCCACHE_DIR=/sccache
|
|
# to download the toolchain
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
|
--mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
|
|
rustup update
|
|
|
|
FROM base as planner
|
|
WORKDIR app
|
|
# We only pay the installation cost once,
|
|
# it will be cached from the second build onwards
|
|
RUN cargo install cargo-chef
|
|
COPY . .
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
|
--mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
|
|
cargo chef prepare --recipe-path recipe.json
|
|
|
|
FROM base as builder
|
|
WORKDIR app
|
|
RUN cargo install cargo-chef
|
|
COPY --from=planner /app/recipe.json recipe.json
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
|
--mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
|
|
cargo chef cook --release --recipe-path recipe.json
|
|
COPY . .
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
|
--mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
|
|
cargo build -p tinymist --release
|
|
|
|
FROM debian:12
|
|
WORKDIR /app/
|
|
COPY --from=builder /app/target/release/tinymist /usr/local/bin
|
|
ENTRYPOINT ["/usr/local/bin/tinymist"]
|