From 5ae2ae758dff57397b3749bca4b9dd6bc45058d2 Mon Sep 17 00:00:00 2001 From: MAHaines Date: Mon, 14 Jul 2025 10:29:43 -0500 Subject: [PATCH] Add Translation service Dockerfile --- services/translator/Dockerfile | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 services/translator/Dockerfile diff --git a/services/translator/Dockerfile b/services/translator/Dockerfile new file mode 100644 index 0000000..a577ad7 --- /dev/null +++ b/services/translator/Dockerfile @@ -0,0 +1,44 @@ +FROM python:3.11-slim + +# Set environment variables +ENV DEBIAN_FRONTEND=noninteractive +ENV PYTHONUNBUFFERED=1 + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + git \ + wget \ + curl \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +# Copy requirements first for better Docker layer caching +COPY requirements.txt . + +# Install Python dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy source code +COPY src/ ./src/ + +# Create necessary directories +RUN mkdir -p /app/models /app/logs + +# Download NLLB models cache (will download on first use if not present) +# RUN python3 -c "from transformers import M2M100ForConditionalGeneration; M2M100ForConditionalGeneration.from_pretrained('facebook/nllb-200-distilled-600M')" + +# Run as non-root user +RUN useradd -m -u 1001 translator +RUN chown -R translator:translator /app +USER translator + +# Health check +HEALTHCHECK --interval=30s --timeout=15s --start-period=120s --retries=3 \ + CMD python3 src/healthcheck.py || exit 1 + +# Expose port +EXPOSE 8000 + +# Start the service +CMD ["python3", "src/api.py"]