|
7 | 7 | # License-safe pattern: bridge is a separate Python process that talks |
8 | 8 | # the public Apache Arrow Flight protocol to an unmodified mosaicod |
9 | 9 | # Docker image. We do not link or modify mosaicod or its Rust crates. |
10 | | -# |
11 | | -# SDK pinning: PR #368 (ROS adapters for futures ontology, including |
12 | | -# LaserScan) merged on 2026-04-13 as commit b3867be. The subsequent |
13 | | -# mosaicolabs==0.3.2 PyPI wheel (2026-04-15) ships with the |
14 | | -# `futures` subpackage missing from the wheel despite being in source |
15 | | -# on main, so `pip install mosaicolabs==0.3.2` cannot import LaserScan. |
16 | | -# We therefore install from the upstream repo at the PR #368 merge |
17 | | -# commit until a PyPI release with correct packaging ships. |
18 | 10 |
|
19 | 11 | FROM python:3.11-slim |
20 | 12 |
|
21 | 13 | ENV PYTHONUNBUFFERED=1 |
22 | 14 | ENV PIP_NO_CACHE_DIR=1 |
23 | 15 | ENV PIP_DISABLE_PIP_VERSION_CHECK=1 |
24 | 16 |
|
25 | | -RUN apt-get update \ |
26 | | - && apt-get install -y --no-install-recommends git ca-certificates \ |
27 | | - && rm -rf /var/lib/apt/lists/* |
28 | | - |
29 | | -ARG MOSAICO_REPO=https://github.com/mosaico-labs/mosaico.git |
30 | | -ARG MOSAICO_PIN=b3867be |
31 | | -RUN git clone "${MOSAICO_REPO}" /opt/mosaico \ |
32 | | - && cd /opt/mosaico \ |
33 | | - && git checkout "${MOSAICO_PIN}" \ |
34 | | - && git rev-parse HEAD > /opt/mosaico/.pinned_sha |
35 | | - |
36 | 17 | COPY requirements.txt /tmp/requirements.txt |
37 | | -RUN pip install -r /tmp/requirements.txt \ |
38 | | - && pip install /opt/mosaico/mosaico-sdk-py |
| 18 | +RUN pip install -r /tmp/requirements.txt |
39 | 19 |
|
40 | 20 | # Sanity check at build time: import the SDK and the LaserScan ontology |
41 | | -# so we fail fast if a future pin regresses on what we need. |
| 21 | +# so we fail fast if the published wheel regresses on what we need. |
42 | 22 | RUN python -c "from mosaicolabs import MosaicoClient; from mosaicolabs.ros_bridge import RosbagInjector, ROSInjectionConfig; from mosaicolabs.models.futures.laser import LaserScan; print('mosaicolabs SDK + LaserScan ontology import OK')" |
43 | 23 |
|
44 | 24 | WORKDIR /app |
|
0 commit comments