From 2b8c1671ba59844b63222dbf61e428e2b01ab472 Mon Sep 17 00:00:00 2001 From: rishawsingh Date: Tue, 19 Nov 2024 23:06:05 +0530 Subject: [PATCH] Created multi-stage Dockerfile, that can be used for further containerization. --- Dockerfile | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..19c6f3c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# Stage 1: Build stage +FROM python:3.10-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache build-base cargo + +# Set working directory +WORKDIR /app + +# Copy necessary files +COPY pyproject.toml requirements.lock requirements-dev.lock /app/ + +# Copy the README files +COPY README.md README_JA.md /app/ + +# Copy src directory +COPY src /app/src + +# Install dependencies +RUN pip install --no-cache-dir -r requirements.lock + +# Install additional dev dependencies +RUN pip install --no-cache-dir -r requirements-dev.lock + + +# Stage 2: Production stage +FROM python:3.10-alpine + +# Set working directory +WORKDIR /app + +# Copy the dependencies from the build stage +COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages +COPY --from=builder /usr/local/bin /usr/local/bin + +# Copy the source code +COPY src /app/src + +# Copy other necessary files +COPY .python-version .gitignore LICENSE README.md README_JA.md /app/ + +# Run the application +CMD ["python", "/app/src/paramit/cli/__init__.py"]