RUN mkdir /app/.ipython
+
+
+
FROM base AS dev
#RUN pip install --no-cache-dir coverage
+
+
FROM base AS prod
+USER root
+
RUN pip install --no-cache-dir gunicorn
+USER app
+
COPY src /app/src
+
+
+
+
+FROM prod AS static-builder
+
+RUN python manage.py collectstatic --noinput
+
+
+
+FROM nginx:alpine AS nginx
+
+# COPY nginx.conf conf.d/...
+
+COPY --from=static-builder /app/var/static /app/var/static
UID=$(UID) GID=$(GID) docker compose build
shell:
- UID=$(UID) GID=$(GID) docker compose run --rm web bash
+ UID=$(UID) GID=$(GID) docker compose exec web bash
logs:
docker compose logs -f
GID: ${GID:-1000}
env_file:
- .env
+ environment:
+ DEBUG: "True"
volumes:
- ./src:/app/src
+ - ./scripts:/app/scripts
- ./var/media:/app/var/media
- ./var/static:/app/var/static
- ./var/counters/:/app/var/counters
+ - ${LIBRARIAN:-/nonexistent}:/${LIBRARIAN:+edita}ble/librarian
- ipython:/app/.ipython
depends_on:
- db
- redis
- memcached
+ entrypoint: /app/scripts/entrypoint.sh
services:
web:
db:
image: postgres:18
- container_name: db
env_file:
- .env
volumes:
--- /dev/null
+#!/bin/bash
+
+# For use in development only.
+# Installs in editable mode any libs mounted under /editable/
+# This way, we can easily work on e.g. librarian.
+
+for lib in /editable/*
+do
+ [ -d "$lib" ] || continue
+ pip install -e $lib
+done
+
+exec "$@"
#
import os
-DEBUG = True
+DEBUG = os.environ.get('DEBUG', '')
ADMINS = [
# ('Your Name', 'your_email@domain.com'),