-
-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathDockerfile.dev
More file actions
30 lines (26 loc) · 1.09 KB
/
Copy pathDockerfile.dev
File metadata and controls
30 lines (26 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Development toolchain for firnflow.
#
# The upstream rust:1.94-bookworm image ships rustc and cargo but does
# not register rustfmt or clippy with rustup, so `cargo fmt` and
# `cargo clippy` fail through the rustup proxy. This image layers the
# missing component registrations on top.
#
# Also installs protobuf-compiler because `lance-encoding` (pulled in
# transitively by `lancedb`) has a build.rs that shells out to `protoc`.
#
# Python3 + maturin are here for the `firn` PyO3 bindings crate
# (`python/`): pyo3's build script probes for a Python interpreter, and
# maturin builds the importable extension / wheel.
FROM rust:1.94-bookworm
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
protobuf-compiler \
libprotobuf-dev \
python3 \
python3-pip \
python3-venv \
&& rm -rf /var/lib/apt/lists/*
RUN rustup component add rustfmt clippy
# maturin builds the `firn` wheel from the PyO3 crate. pip's PEP 668
# guard is bypassed because this is a throwaway dev image.
RUN pip3 install --no-cache-dir --break-system-packages 'maturin>=1.7,<2'