@@ -82,36 +82,6 @@ x-postgresql-base: &postgresql-base
8282 -c wal_level=minimal
8383 # 13+: -c wal_keep_size=0
8484
85- x-sqlite-lib-base : &sqlite-lib-base
86- image : django-docker-box:${PYTHON_IMPLEMENTATION}-${PYTHON_VERSION}-sqlite${SQLITE_VERSION}
87- pull_policy : never
88- build :
89- context : .
90- dockerfile_inline : |
91- FROM django-docker-box:${PYTHON_IMPLEMENTATION}-${PYTHON_VERSION}
92- SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-o", "xtrace", "-c"]
93- # Only compile SQLite and set LD_PRELOAD if a version is specified.
94- RUN <<EOF
95- if [[ "${SQLITE_VERSION}" ]]; then
96- export CFLAGS="${SQLITE_CFLAGS}"
97- git clone --depth 1 --branch version-${SQLITE_VERSION} \
98- https://github.com/sqlite/sqlite.git /tmp/sqlite
99- cd /tmp/sqlite
100- ./configure
101- make
102- cp .libs/libsqlite3.so /tmp/
103- rm -rf /tmp/sqlite
104- fi
105- EOF
106- SHELL ["/bin/bash", "-c"]
107- ENV LD_PRELOAD=${SQLITE_VERSION:+/tmp/libsqlite3.so}
108- args :
109- - PYTHON_IMPLEMENTATION=${PYTHON_IMPLEMENTATION}
110- - PYTHON_VERSION=${PYTHON_VERSION}
111- - SQLITE_VERSION=${SQLITE_VERSION}
112- - SQLITE_CFLAGS=${SQLITE_CFLAGS}
113- additional_contexts : *additional-contexts
114-
11585x-memcached : &memcached-base
11686 image : memcached:alpine
11787 deploy :
@@ -169,6 +139,10 @@ volumes:
169139
170140services :
171141
142+ # Base service to allow building the image with `docker compose build base`.
143+ base :
144+ << : *base
145+
172146 # Services: Databases
173147
174148 mariadb-db :
@@ -313,18 +287,41 @@ services:
313287 - DATABASE_ENGINE=django.db.backends.postgresql
314288 - DATABASE_HOST=postgresql-db
315289
316- sqlite : &sqlite-base
290+ sqlite :
317291 << : *base
292+ image : django-docker-box:${PYTHON_IMPLEMENTATION}-${PYTHON_VERSION}-sqlite${SQLITE_VERSION}
293+ pull_policy : never
294+ build :
295+ context : .
296+ dockerfile_inline : |
297+ FROM django-docker-box:${PYTHON_IMPLEMENTATION}-${PYTHON_VERSION}
298+ SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-o", "xtrace", "-c"]
299+ # Only compile SQLite and set LD_PRELOAD if a version is specified.
300+ RUN <<EOF
301+ if [[ "${SQLITE_VERSION}" ]]; then
302+ export CFLAGS="${SQLITE_CFLAGS}"
303+ git clone --depth 1 --branch version-${SQLITE_VERSION} \
304+ https://github.com/sqlite/sqlite.git /tmp/sqlite
305+ cd /tmp/sqlite
306+ ./configure
307+ make
308+ cp .libs/libsqlite3.so /tmp/
309+ rm -rf /tmp/sqlite
310+ fi
311+ EOF
312+ SHELL ["/bin/bash", "-c"]
313+ ENV LD_PRELOAD=${SQLITE_VERSION:+/tmp/libsqlite3.so}
314+ args :
315+ - PYTHON_IMPLEMENTATION=${PYTHON_IMPLEMENTATION}
316+ - PYTHON_VERSION=${PYTHON_VERSION}
317+ - SQLITE_VERSION=${SQLITE_VERSION}
318+ - SQLITE_CFLAGS=${SQLITE_CFLAGS}
319+ additional_contexts : *additional-contexts
318320 depends_on :
319321 << : *depends-on-caches
320322 environment :
321323 - DATABASE_ENGINE=django.db.backends.sqlite3
322324
323- sqlite-lib :
324- << :
325- - *sqlite-lib-base
326- - *sqlite-base
327-
328325 # Commands: Tests: GIS
329326
330327 mariadb-gis :
0 commit comments