mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Closes #278 ```bash $ docker run --rm -it datasette spatialite SpatiaLite version ..: 4.4.0-RC0 Supported Extensions: - 'VirtualShape' [direct Shapefile access] - 'VirtualDbf' [direct DBF access] - 'VirtualXL' [direct XLS access] - 'VirtualText' [direct CSV/TXT access] - 'VirtualNetwork' [Dijkstra shortest path] - 'RTree' [Spatial Index - R*Tree] - 'MbrCache' [Spatial Index - MBR cache] - 'VirtualSpatialIndex' [R*Tree metahandler] - 'VirtualElementary' [ElemGeoms metahandler] - 'VirtualKNN' [K-Nearest Neighbors metahandler] - 'VirtualXPath' [XML Path Language - XPath] - 'VirtualFDO' [FDO-OGR interoperability] - 'VirtualGPKG' [OGC GeoPackage interoperability] - 'VirtualBBox' [BoundingBox tables] - 'SpatiaLite' [Spatial SQL - OGC] PROJ.4 version ......: Rel. 4.9.3, 15 August 2016 GEOS version ........: 3.5.1-CAPI-1.9.1 r4246 TARGET CPU ..........: x86_64-linux-gnu the SPATIAL_REF_SYS table already contains some row(s) SQLite version ......: 3.23.1 Enter ".help" for instructions SQLite version 3.23.1 2018-04-10 17:39:29 Enter ".help" for instructions Enter SQL statements terminated with a ";" spatialite> ``` ```bash $ docker run --rm -it datasette python -c "import sqlite3; print(sqlite3.sqlite_version)" 3.23.1 ``` Also updates the query used to check for FTS5 as the old version wasn't detecting FTS5 for some reason.
42 lines
1.7 KiB
Docker
42 lines
1.7 KiB
Docker
FROM python:3.6-slim-stretch as build
|
|
|
|
# Setup build dependencies
|
|
RUN apt update \
|
|
&& apt install -y python3-dev build-essential wget libxml2-dev libproj-dev libgeos-dev libsqlite3-dev zlib1g-dev pkg-config \
|
|
&& apt clean
|
|
|
|
|
|
RUN wget "https://www.sqlite.org/2018/sqlite-autoconf-3230100.tar.gz" && tar xzf sqlite-autoconf-3230100.tar.gz \
|
|
&& cd sqlite-autoconf-3230100 && ./configure --disable-static --enable-fts5 --enable-json1 CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_JSON1" \
|
|
&& make && make install
|
|
|
|
RUN wget "https://www.gaia-gis.it/gaia-sins/freexl-1.0.5.tar.gz" && tar zxf freexl-1.0.5.tar.gz \
|
|
&& cd freexl-1.0.5 && ./configure && make && make install
|
|
|
|
RUN wget "https://www.gaia-gis.it/gaia-sins/libspatialite-4.4.0-RC0.tar.gz" && tar zxf libspatialite-4.4.0-RC0.tar.gz \
|
|
&& cd libspatialite-4.4.0-RC0 && ./configure && make && make install
|
|
|
|
RUN wget "https://www.gaia-gis.it/gaia-sins/readosm-1.1.0.tar.gz" && tar zxf readosm-1.1.0.tar.gz && cd readosm-1.1.0 && ./configure && make && make install
|
|
|
|
RUN wget "https://www.gaia-gis.it/gaia-sins/spatialite-tools-4.4.0-RC0.tar.gz" && tar zxf spatialite-tools-4.4.0-RC0.tar.gz \
|
|
&& cd spatialite-tools-4.4.0-RC0 && ./configure && make && make install
|
|
|
|
|
|
# Add local code to the image instead of fetching from pypi.
|
|
COPY . /datasette
|
|
|
|
RUN pip install /datasette
|
|
|
|
FROM python:3.6-slim-stretch
|
|
|
|
# Copy python dependencies and spatialite libraries
|
|
COPY --from=build /usr/local/lib/ /usr/local/lib/
|
|
# Copy executables
|
|
COPY --from=build /usr/local/bin /usr/local/bin
|
|
# Copy spatial extensions
|
|
COPY --from=build /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
|
|
|
|
ENV LD_LIBRARY_PATH=/usr/local/lib
|
|
|
|
EXPOSE 8001
|
|
CMD ["datasette"]
|