53 lines
1.5 KiB
Docker
53 lines
1.5 KiB
Docker
FROM python:3.12-slim-bookworm
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PIP_NO_CACHE_DIR=1
|
|
|
|
RUN set -eux; \
|
|
sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources; \
|
|
printf '%s\n' \
|
|
'Acquire::Retries "8";' \
|
|
'Acquire::http::No-Cache "true";' \
|
|
'Acquire::https::No-Cache "true";' \
|
|
'Acquire::http::Pipeline-Depth "0";' \
|
|
'Acquire::BrokenProxy "true";' \
|
|
> /etc/apt/apt.conf.d/99docker-hardening; \
|
|
apt-get update; \
|
|
for attempt in 1 2 3; do \
|
|
apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
libpq-dev \
|
|
curl \
|
|
nodejs \
|
|
npm \
|
|
libasound2 \
|
|
libatk-bridge2.0-0 \
|
|
libatk1.0-0 \
|
|
libcups2 \
|
|
libgbm1 \
|
|
libgtk-3-0 \
|
|
libnss3 \
|
|
libx11-xcb1 \
|
|
libxcomposite1 \
|
|
libxdamage1 \
|
|
libxfixes3 \
|
|
libxrandr2 \
|
|
fonts-liberation \
|
|
&& break; \
|
|
if [ "$attempt" -eq 3 ]; then exit 1; fi; \
|
|
rm -rf /var/lib/apt/lists/*; \
|
|
sleep "$((attempt * 5))"; \
|
|
apt-get update; \
|
|
done; \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements /app/requirements
|
|
RUN pip install --upgrade pip && pip install -r requirements/base.txt
|
|
|
|
COPY . /app
|
|
|
|
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
|