Skip to content

Commit e007723

Browse files
committed
update dockerfile to use uv
1 parent cfca09f commit e007723

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

docker/Dockerfile

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,62 @@ FROM continuumio/miniconda3 as base
22

33
COPY environment.yml ./
44
RUN 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

99
FROM 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"
1219
WORKDIR /opt/stactools-ephemeral
1320
COPY --from=base /opt/conda /opt/conda
1421
COPY pyproject.toml ./
1522
COPY src/stactools/ephemeral/__init__.py src/stactools/ephemeral/
1623
RUN 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

2529
FROM 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"
2837
WORKDIR /opt/stactools-ephemeral
2938
COPY --from=base /opt/conda /opt/conda
3039
COPY --from=dependencies /opt/venv /opt/venv
3140
COPY pyproject.toml ./
3241
COPY src ./src
33-
RUN pip install -U pip \
34-
&& pip install .
42+
RUN uv sync --no-dev --no-editable
3543
WORKDIR /
3644
RUN rm -rf /opt/stactools-ephemeral
3745
CMD [ "stac", "ephemeralcmd" ]
3846

3947

4048
FROM 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"
4356
WORKDIR /opt/stactools-ephemeral
4457
COPY --from=dependencies /opt/venv /opt/venv
4558
COPY pyproject.toml .
46-
RUN pip install -e '.[dev]' \
47-
&& git init
59+
RUN uv sync \
60+
&& git init
4861

4962

5063
FROM dev-dependencies as dev-builder

docker/cibuild

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
2020
--target dev-builder \
2121
.
2222
docker run --rm \
23-
--entrypoint scripts/cibuild \
24-
stactools-packages/ephemeral:dev
23+
--entrypoint uv \
24+
stactools-packages/ephemeral:dev \
25+
sync
2526
fi

0 commit comments

Comments
 (0)