Files @ 956f8c6fdaad
Branch filter:

Location: website/Dockerfile-debian-bookworm

bsturmfels
podjango: Add "Podcast" model to support multiple podcasts

Each Cast (episode) can belong to one or more Podcast, allowing episodes to be
shared between podcasts. This enables us introductory episodes to be delivered
in their own feed, but also included in the main "The Corresponding Source"
feed.

This required adding an additional `podcast_slug` argument to most views. The
date archive views were dropped because they're not linked to from anywhere.

Added a `podcasts` view as an index of all available Podcasts.
# To build the Docker image with the necessary dependencies:
# docker build --tag sfconservancy.org-bookworm --file Dockerfile-debian-bookworm .
#
# [FIRST RUN ONLY] If you don't have an existing copy of the database, run:
# touch conservancy-website.sqlite3
#
# Start the application with:
# docker run --tty --interactive --rm=true --publish=8000:8000 \
#   --mount type=bind,source=$(pwd),target=/var/www/website \
#   --mount type=bind,source=$(pwd)/conservancy-website.sqlite3,target=/var/lib/www/database/conservancy-website.sqlite3 \
#   sfconservancy.org-bookworm:latest
#
# [FIRST RUN ONLY] In a separate terminal, run `docker ps` noting "CONTAINER ID".
# Then run the database migrations with:
# docker exec -it [CONTAINER ID] /usr/bin/python3 manage.py migrate
#
# Visit the site at http://127.0.0.1:8000

ARG DEBIAN_FRONTEND=noninteractive

FROM debian:bookworm
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y python3 python3-pip python3-wheel sqlite3
RUN apt-get install -y python3-django python3-bs4 python3-html5lib python3-django-countries
COPY ./requirements.txt /var/www/website/requirements.txt
WORKDIR /var/www/website/
RUN python3 -m pip install -r requirements.txt --break-system-packages
RUN python3 -m pip freeze
ENTRYPOINT ["python3", "/var/www/website/manage.py", "runserver", "0.0.0.0:8000"]