From 5cf78eded61cacec435b854e18f1e94511cf2da8 Mon Sep 17 00:00:00 2001 From: Ravi Kotecha Date: Wed, 23 May 2018 10:47:59 +0100 Subject: [PATCH] Dockerfile consistency and FTS5 detection This makes sure the compile steps for the various libraries are done in only one layer. Also updates the query used to check for FTS5 as the old version wasn't detecting FTS5 for some reason. --- Dockerfile | 23 ++++++++++++----------- datasette/app.py | 2 +- setup.py | 1 - 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index e2403124..cb3d6621 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,33 +2,34 @@ FROM python:3.6-slim-stretch as build # Setup build dependencies RUN apt update \ -&& apt install -y python3-dev build-essential wget libxml2 libxml2-dev libproj-dev libgeos-dev libsqlite3-dev zlib1g-dev pkg-config unzip \ +&& 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 xzvf 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" \ +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 zxvf freexl-1.0.5.tar.gz && cd freexl-1.0.5 && ./configure && 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 zxvf libspatialite-4.4.0-RC0.tar.gz -RUN cd libspatialite-4.4.0-RC0 && ./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 zxvf readosm-1.1.0.tar.gz && cd readosm-1.1.0 && ./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 zxvf spatialite-tools-4.4.0-RC0.tar.gz && cd spatialite-tools-4.4.0-RC0 && ./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. -ADD . /datasette +COPY . /datasette RUN pip install /datasette - FROM python:3.6-slim-stretch -# Copy python dependencies +# 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 diff --git a/datasette/app.py b/datasette/app.py index e4ce6622..1dcec6ad 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -377,7 +377,7 @@ class Datasette: for fts in ("FTS5", "FTS4", "FTS3"): try: conn.execute( - "CREATE VIRTUAL TABLE v{fts} USING {fts} (t TEXT)".format(fts=fts) + "CREATE VIRTUAL TABLE v{fts} USING {fts} (data)".format(fts=fts) ) fts_versions.append(fts) except sqlite3.OperationalError: diff --git a/setup.py b/setup.py index 041e1bbd..1e7cce5e 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,6 @@ setup( 'hupper==1.0', 'pint==0.8.1', 'pluggy>=0.1.0,<1.0', - 'pysqlite3==0.1.4', ], entry_points=''' [console_scripts]