Some checks failed
PostgreSQL Compatibility Matrix / PG14 smoke (push) Successful in 8s
PostgreSQL Compatibility Matrix / PG15 smoke (push) Successful in 8s
PostgreSQL Compatibility Matrix / PG16 smoke (push) Successful in 8s
PostgreSQL Compatibility Matrix / PG17 smoke (push) Successful in 8s
PostgreSQL Compatibility Matrix / PG18 smoke (push) Successful in 8s
PostgreSQL Compatibility Matrix / Backend Alpine smoke (PG16) (push) Failing after 6s
This change switches the base image from "slim" to "alpine" to reduce the overall image size and improve security. The updated image is more lightweight and better suited for environments where optimization is critical.
36 lines
956 B
Docker
36 lines
956 B
Docker
ARG PYTHON_BASE_IMAGE=python:3.13-alpine
|
|
FROM ${PYTHON_BASE_IMAGE} AS base
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV PIP_NO_CACHE_DIR=1
|
|
|
|
WORKDIR /app
|
|
|
|
RUN if command -v apt-get >/dev/null 2>&1; then \
|
|
apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/*; \
|
|
elif command -v apk >/dev/null 2>&1; then \
|
|
apk upgrade --no-cache; \
|
|
fi
|
|
|
|
RUN if addgroup --help 2>&1 | grep -q -- '--system'; then \
|
|
addgroup --system app && adduser --system --ingroup app app; \
|
|
else \
|
|
addgroup -S app && adduser -S -G app app; \
|
|
fi
|
|
|
|
COPY requirements.txt /app/requirements.txt
|
|
RUN pip install --upgrade pip && pip install -r /app/requirements.txt
|
|
|
|
COPY . /app
|
|
|
|
RUN chmod +x /app/entrypoint.sh
|
|
|
|
USER app
|
|
|
|
EXPOSE 8000
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --retries=5 CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/healthz')" || exit 1
|
|
|
|
CMD ["/app/entrypoint.sh"]
|