mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 04:08:15 +00:00 
			
		
		
		
	- Dockerfile: build & install gunicorn wheels - compose: run initdb before start; use `python -m gunicorn` - env: add POSTGRES_* and BookWyrm Redis aliases (BROKER/ACTIVITY/CACHE) + CACHE_URL - vars: add cache URL, DB indices, and URL aliases for Redis Ref: https://chatgpt.com/share/68b7492b-3200-800f-80c4-295bc3233d68
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
# Build BookWyrm from source (no upstream image available)
 | 
						|
FROM python:3.11-bookworm AS builder
 | 
						|
 | 
						|
RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
						|
    git build-essential libpq-dev \
 | 
						|
    libjpeg-dev zlib1g-dev libxml2-dev libxslt1-dev libffi-dev libmagic-dev \
 | 
						|
  && rm -rf /var/lib/apt/lists/*
 | 
						|
 | 
						|
WORKDIR /src
 | 
						|
# Shallow clone the chosen tag/branch
 | 
						|
RUN git clone --depth=1 --branch "{{ BOOKWYRM_VERSION }}" https://github.com/bookwyrm-social/bookwyrm.git .
 | 
						|
 | 
						|
# Pre-install Python deps to a wheelhouse for faster final image
 | 
						|
RUN pip install --upgrade pip \
 | 
						|
 && pip wheel --wheel-dir /wheels -r requirements.txt \
 | 
						|
 && pip wheel --wheel-dir /wheels gunicorn
 | 
						|
 | 
						|
FROM python:3.11-bookworm
 | 
						|
ENV PYTHONUNBUFFERED=1
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
# Copy app source and wheels
 | 
						|
COPY --from=builder /src /app
 | 
						|
COPY --from=builder /wheels /wheels
 | 
						|
 | 
						|
# System deps for runtime
 | 
						|
RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
						|
    libpq5 curl \
 | 
						|
    libjpeg62-turbo zlib1g libxml2 libxslt1.1 libffi8 libmagic1 \
 | 
						|
  && rm -rf /var/lib/apt/lists/* \
 | 
						|
  && pip install --no-cache-dir --no-index --find-links=/wheels -r /app/requirements.txt \
 | 
						|
  && pip install --no-cache-dir --no-index --find-links=/wheels gunicorn \
 | 
						|
  && adduser --disabled-password --gecos '' bookwyrm \
 | 
						|
  && mkdir -p /app/data /app/media \
 | 
						|
  && chown -R bookwyrm:bookwyrm /app
 | 
						|
 | 
						|
USER bookwyrm
 | 
						|
 | 
						|
# Gunicorn/Celery are configured by upstream files in repo
 | 
						|
# Ports/healthcheck handled by compose template
 |