56 lines
No EOL
1.7 KiB
Docker
56 lines
No EOL
1.7 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM python:3.12-slim-bookworm
|
|
LABEL authors="fureunoir"
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
LANG=C.UTF-8 \
|
|
DEBIAN_FRONTEND=noninteractive \
|
|
PATH="/root/.local/bin:$PATH"
|
|
|
|
WORKDIR /app
|
|
|
|
RUN set -eux; \
|
|
sed -i 's|https://deb.debian.org/debian|https://ftp.uk.debian.org/debian|g' /etc/apt/sources.list.d/debian.sources; \
|
|
apt-get update; \
|
|
apt-get install -y --no-install-recommends wget gnupg curl; \
|
|
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -; \
|
|
echo "deb http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" \
|
|
> /etc/apt/sources.list.d/pgdg.list; \
|
|
apt-get update; \
|
|
apt-get install -y --no-install-recommends --fix-missing \
|
|
build-essential \
|
|
libpq-dev \
|
|
gettext \
|
|
libgettextpo-dev \
|
|
graphviz-dev \
|
|
libgts-dev \
|
|
libpq5 \
|
|
chrony \
|
|
graphviz \
|
|
binutils \
|
|
libproj-dev \
|
|
postgresql-client-17 \
|
|
gdal-bin; \
|
|
rm -rf /var/lib/apt/lists/*; \
|
|
pip install --upgrade pip
|
|
|
|
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH"
|
|
RUN uv venv /opt/schon-python
|
|
ENV VIRTUAL_ENV=/opt/schon-python
|
|
ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python
|
|
ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH"
|
|
|
|
COPY pyproject.toml pyproject.toml
|
|
COPY uv.lock uv.lock
|
|
|
|
RUN set -eux; \
|
|
uv sync --extra worker --extra openai --locked
|
|
|
|
COPY ./scripts/Docker/beat-entrypoint.sh /usr/local/bin/beat-entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/beat-entrypoint.sh
|
|
|
|
COPY . .
|
|
|
|
ENTRYPOINT ["/usr/bin/bash", "beat-entrypoint.sh"] |