Skip to content

Commit 41f77a2

Browse files
fix: Update Dockerfile for GPU support by modifying build type and dependencies
1 parent 0bceaae commit 41f77a2

File tree

1 file changed

+32
-11
lines changed

1 file changed

+32
-11
lines changed

Dockerfile.pb

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,79 @@
44

55
ARG PY_VER=3.10
66
ARG TF_VER=2.9.2
7-
ARG BUILD_TYPE=cpu
7+
ARG BUILD_TYPE=gpu
88
ARG CUDA_TAG=11.8.0-cudnn8-runtime-ubuntu22.04
99
ARG CUDA_DEVEL_TAG=11.8.0-cudnn8-devel-ubuntu22.04
1010

11+
# ==============================================================================
12+
# === CPU base image (minimal) =================================================
13+
1114
FROM python:${PY_VER}-slim-bookworm AS cpu-base
1215
ENV DEBIAN_FRONTEND=noninteractive
1316
RUN apt-get update && \
1417
apt-get install -y --no-install-recommends \
1518
build-essential gcc g++ python3-dev python3-rtree \
1619
gdal-bin libgdal-dev python3-gdal python3-opencv libspatialindex-dev \
1720
&& rm -rf /var/lib/apt/lists/*
18-
19-
FROM nvidia/cuda:${CUDA_DEVEL_TAG} AS cuda-dev
20-
21+
# ==============================================================================
22+
# === GPU base image (CUDA + runtime-only Python & GDAL) =======================
2123
FROM nvidia/cuda:${CUDA_TAG} AS gpu-base
2224
ENV DEBIAN_FRONTEND=noninteractive
2325
RUN apt-get update && \
2426
apt-get install -y --no-install-recommends \
25-
python3 python3-pip python3-rtree python-is-python3 \
26-
gdal-bin libgdal-dev python3-gdal python3-opencv \
27-
libspatialindex-dev libpq-dev \
28-
&& rm -rf /var/lib/apt/lists/* \
29-
&& python3 -m pip install --upgrade pip
30-
COPY --from=cuda-dev /usr/local/cuda/nvvm/libdevice /usr/local/cuda/nvvm/libdevice
27+
python3 python3-pip build-essential gcc g++ python3-dev python3-rtree python-is-python3 \
28+
gdal-bin libgdal-dev python3-gdal python3-opencv libspatialindex-dev \
29+
&& rm -rf /var/lib/apt/lists/* && \
30+
python3 -m pip install --upgrade pip
31+
32+
FROM nvidia/cuda:${CUDA_DEVEL_TAG} AS cuda-dev
33+
3134

35+
# ==============================================================================
36+
# === Builder stage (installs everything) ======================================
3237
FROM ${BUILD_TYPE}-base AS builder
3338
ENV DEBIAN_FRONTEND=noninteractive
3439
ARG TF_VER
40+
ARG BUILD_TYPE
41+
3542
COPY docker/pipped-requirements.txt /tmp/pipped-requirements.txt
43+
44+
45+
# Use pip cache and install Python packages (including building GDAL)
3646
RUN --mount=type=cache,target=/root/.cache/pip \
3747
pip install --no-cache-dir --upgrade pip more-itertools && \
3848
pip install --no-cache-dir tensorflow==${TF_VER} && \
39-
pip install --no-cache-dir "GDAL==$(gdal-config --version)" && \
49+
pip install "GDAL==$(gdal-config --version)" && \
4050
pip install --no-cache-dir -r /tmp/pipped-requirements.txt
51+
52+
# Install solaris (local)
4153
COPY solaris /tmp/solaris
4254
RUN --mount=type=cache,target=/root/.cache/pip \
4355
pip install --no-cache-dir /tmp/solaris
56+
57+
# Install scikit-fmm
4458
RUN --mount=type=cache,target=/root/.cache/pip \
4559
pip install --no-cache-dir scikit-fmm
60+
61+
# Install ramp (local)
4662
COPY setup.py README.md /tmp/ramp-code/
4763
COPY ramp /tmp/ramp-code/ramp
4864
RUN --mount=type=cache,target=/root/.cache/pip \
4965
pip install --no-cache-dir /tmp/ramp-code
5066

67+
# ==============================================================================
68+
# === Final minimal runtime image ==============================================
5169
FROM ${BUILD_TYPE}-base AS final
5270
ENV DEBIAN_FRONTEND=noninteractive
71+
5372
ENV CPLUS_INCLUDE_PATH=/usr/include/gdal \
5473
C_INCLUDE_PATH=/usr/include/gdal \
5574
RAMP_HOME=/app
75+
5676
COPY --from=builder /usr/local /usr/local
5777
COPY --from=builder /usr/lib/python*/ /usr/lib/python*/
5878
COPY --from=builder /usr/include/gdal /usr/include/gdal
5979
COPY --from=cuda-dev /usr/local/cuda/nvvm/libdevice /usr/local/cuda/nvvm/libdevice
80+
6081
WORKDIR /app
6182
CMD ["bash"]

0 commit comments

Comments
 (0)