Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 15 additions & 27 deletions .launch/Dockerfile_base
Original file line number Diff line number Diff line change
@@ -1,52 +1,40 @@
# Build stage
ARG PYTHON_VERSION=3.12.11
FROM python:${PYTHON_VERSION}-slim AS builder
FROM python:3.12-slim AS builder

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /app

# Install build dependencies
RUN apt-get update && apt-get install -y \
build-essential \
&& rm -rf /var/lib/apt/lists/*

# Install poetry
RUN pip install --no-cache-dir poetry
# Install build tools and poetry
RUN apt-get update && apt-get install -y build-essential \
&& rm -rf /var/lib/apt/lists/* \
&& pip install --no-cache-dir poetry

# Copy dependency files
# Install dependencies
COPY pyproject.toml poetry.lock ./

# Configure poetry and install dependencies
RUN poetry config virtualenvs.create false \
&& poetry install --no-root --only=main

# Production stage
ARG PYTHON_VERSION=3.12
FROM python:${PYTHON_VERSION}-slim
FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app

# Install runtime dependencies only
RUN apt-get update && apt-get install -y \
libpq5 \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
# Install runtime dependencies
RUN apt-get update && apt-get install -y libpq5 \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Get Python version for dynamic path
ARG PYTHON_VERSION=3.12
ENV PYTHON_SITE_PACKAGES=/usr/local/lib/python${PYTHON_VERSION}/site-packages

# Copy installed packages from builder stage
COPY --from=builder ${PYTHON_SITE_PACKAGES} ${PYTHON_SITE_PACKAGES}
# Copy Python packages and binaries from builder
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin

# Copy application code
COPY src/ ./src/
COPY alembic.ini ./

# Clean any cache files (safety backup)
RUN find ./src -name "*.pyc" -delete 2>/dev/null || true