@@ -2,49 +2,62 @@ FROM continuumio/miniconda3 as base
22
33COPY environment.yml ./
44RUN conda update conda && \
5- conda env update -f environment.yml -n base && \
6- conda clean -af
5+ conda env update -f environment.yml -n base && \
6+ conda clean -af
77
88
99FROM base as dependencies
1010
11- ENV PATH="/opt/venv/bin:$PATH"
11+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
12+
13+ ENV UV_LINK_MODE=copy \
14+ UV_COMPILE_BYTECODE=1 \
15+ UV_PYTHON_DOWNLOADS=never \
16+ UV_PYTHON=python3.12 \
17+ UV_PROJECT_ENVIRONMENT=/opt/venv \
18+ PATH="/opt/venv/bin:$PATH"
1219WORKDIR /opt/stactools-ephemeral
1320COPY --from=base /opt/conda /opt/conda
1421COPY pyproject.toml ./
1522COPY src/stactools/ephemeral/__init__.py src/stactools/ephemeral/
1623RUN apt-get -y -q update \
17- && apt-get -y -q install build-essential \
18- && rm -rf /var/lib/apt/lists/
19- RUN python -m venv /opt/venv
20- RUN pip install . \
21- && ls /opt/venv \
22- && rm -r /opt/venv/lib/python3.12/site-packages/stactools/ephemeral
24+ && apt-get -y -q install build-essential \
25+ && rm -rf /var/lib/apt/lists/
26+ RUN uv sync --no-install-project --no-editable
2327
2428
2529FROM dependencies as builder
2630
27- ENV PATH="/opt/venv/bin:$PATH"
31+ ENV UV_LINK_MODE=copy \
32+ UV_COMPILE_BYTECODE=1 \
33+ UV_PYTHON_DOWNLOADS=never \
34+ UV_PYTHON=python3.12 \
35+ UV_PROJECT_ENVIRONMENT=/opt/venv \
36+ PATH="/opt/venv/bin:$PATH"
2837WORKDIR /opt/stactools-ephemeral
2938COPY --from=base /opt/conda /opt/conda
3039COPY --from=dependencies /opt/venv /opt/venv
3140COPY pyproject.toml ./
3241COPY src ./src
33- RUN pip install -U pip \
34- && pip install .
42+ RUN uv sync --no-dev --no-editable
3543WORKDIR /
3644RUN rm -rf /opt/stactools-ephemeral
3745CMD [ "stac" , "ephemeralcmd" ]
3846
3947
4048FROM dependencies as dev-dependencies
4149
42- ENV PATH="/opt/venv/bin:$PATH"
50+ ENV UV_LINK_MODE=copy \
51+ UV_COMPILE_BYTECODE=1 \
52+ UV_PYTHON_DOWNLOADS=never \
53+ UV_PYTHON=python3.12 \
54+ UV_PROJECT_ENVIRONMENT=/opt/venv \
55+ PATH="/opt/venv/bin:$PATH"
4356WORKDIR /opt/stactools-ephemeral
4457COPY --from=dependencies /opt/venv /opt/venv
4558COPY pyproject.toml .
46- RUN pip install -e '.[dev]' \
47- && git init
59+ RUN uv sync \
60+ && git init
4861
4962
5063FROM dev-dependencies as dev-builder
0 commit comments