66FROM python:3.12-slim AS builder
77
88# Install build dependencies required for compiling Python packages
9- RUN apt-get update && apt-get install -y --no-install-recommends \
9+ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
10+ --mount=type=cache,target=/var/lib/apt,sharing=locked \
11+ rm -f /etc/apt/apt.conf.d/docker-clean && \
12+ apt-get update && apt-get install -y --no-install-recommends \
1013 build-essential \
1114 libpq-dev \
12- curl \
13- && rm -rf /var/lib/apt/lists/*
15+ curl
1416
1517# Install Poetry
1618ENV POETRY_VERSION=2.3.0 \
@@ -20,7 +22,8 @@ ENV POETRY_VERSION=2.3.0 \
2022 POETRY_VIRTUALENVS_CREATE=1 \
2123 POETRY_CACHE_DIR=/tmp/poetry_cache
2224
23- RUN curl -sSL https://install.python-poetry.org | python3 - && \
25+ RUN --mount=type=cache,target=/root/.cache \
26+ curl -sSL https://install.python-poetry.org | python3 - && \
2427 ln -s /opt/poetry/bin/poetry /usr/local/bin/poetry
2528
2629WORKDIR /app
@@ -52,13 +55,14 @@ LABEL org.opencontainers.image.description="Operation Code Backend - Development
5255LABEL org.opencontainers.image.licenses="MIT"
5356
5457# Install runtime dependencies
55- RUN apt-get update && apt-get install -y --no-install-recommends \
58+ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
59+ --mount=type=cache,target=/var/lib/apt,sharing=locked \
60+ rm -f /etc/apt/apt.conf.d/docker-clean && \
61+ apt-get update && apt-get install -y --no-install-recommends \
5662 libpq5 \
5763 curl \
5864 wget \
59- && apt-get upgrade -y \
60- && rm -rf /var/lib/apt/lists/* \
61- && apt-get clean
65+ && apt-get upgrade -y
6266
6367# Create non-root user for security
6468RUN groupadd -r appuser && \
@@ -100,13 +104,14 @@ LABEL org.opencontainers.image.description="Operation Code Backend - Django API"
100104LABEL org.opencontainers.image.licenses="MIT"
101105
102106# Install only runtime dependencies (no build tools)
103- RUN apt-get update && apt-get install -y --no-install-recommends \
107+ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
108+ --mount=type=cache,target=/var/lib/apt,sharing=locked \
109+ rm -f /etc/apt/apt.conf.d/docker-clean && \
110+ apt-get update && apt-get install -y --no-install-recommends \
104111 libpq5 \
105112 curl \
106113 wget \
107- && apt-get upgrade -y \
108- && rm -rf /var/lib/apt/lists/* \
109- && apt-get clean
114+ && apt-get upgrade -y
110115
111116# Create non-root user for security
112117RUN groupadd -r appuser && \
0 commit comments