geobase-builder
Docker for building geospatial python virtual environments on Ubuntu 20.04
50K+
Set of docker images to build recent versions of geospatial libraries and python environments that use them.
requirements.txt and constraints.txt (could be empty)rasterio[s3]
pyproj
DockerfileFROM opendatacube/geobase-builder as env_builder
COPY requirements.txt /
COPY constraints.txt /
RUN env-build-tool new /requirements.txt /constraints.txt /env
FROM opendatacube/geobase-runner
COPY --from=env_builder /env /env
ENV LC_ALL=C.UTF-8
ENV PATH="/env/bin:${PATH}"
See sample directory for more information.
Basic idea is to use multi-stage builds to minimize output docker image size and to reduce surface area for security/deployment concerns.
Each step is described in more detail below. Overall structure is as following
base/builder, package those in .debbase/runnerbuilder stage on opendatacube/geobase-builder:${V_BASE}apt-getopendatacube/geobase-runner:${V_BASE}apt-getbuilder stagebuildack-deps:focal (Ubuntu 20.04)Folder structure:
base/builder/Dockerfile base builder image: docker pull opendatacube/geobase-builder
/dl/ contains downloaded sources/opt/ contains built .deb for gdal/kea/proj/lercbase/builder/gdal.opts feature selection for compiled GDAL, removing features should be easy, adding might require installing extra build dependencies with apt-get, might also need to add those extra libs to base/runner/Dockerfile.Derives from ubuntu:20.04, has all the necessary C/C++/Fortran libs installed in non-dev mode to run python wheels compiled in base/builder.
It is used as base for "runner dockers" that use multi-stage building technique: builder stage constructs a python environment using pre-compiled wheels + whatever extra downloaded from pypi.
Content type
Image
Digest
Size
467.8 MB
Last updated
over 4 years ago
docker pull opendatacube/geobase-builder:3.3.0Pulls:
12
Jun 29 to Jul 5