Files
natureinpots_community/Dockerfile

38 lines
968 B
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FROM python:3.11-slim
ENV PYTHONUNBUFFERED=1
# 1) Install build deps, netcat, curl—and gosu for privilege dropping
RUN apt-get update \
&& apt-get install -y \
gcc \
default-libmysqlclient-dev \
pkg-config \
netcat-openbsd \
curl \
gosu \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# 2) Copy & install Python requirements
COPY requirements.txt .
RUN pip install --upgrade pip \
&& pip install -r requirements.txt
# 3) Copy the rest of the app
COPY . .
# 4) Create the non-root user and make sure the upload dir exists and is chownd
RUN groupadd -g 1000 appuser \
&& useradd -u 1000 -ms /bin/bash -g appuser appuser \
&& mkdir -p /app/data/uploads \
&& chown -R appuser:appuser /app/data/uploads
# 5) Install the entrypoint (keep this as root so it can chown the volume at runtime)
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["flask", "run", "--host=0.0.0.0"]