Files
taylanbakircioglu d7ca50b387 feat: Flowfish - eBPF-powered multi-cluster Kubernetes observability platform
Multi-cluster dependency mapping, real-time network monitoring,
impact analysis, and CI/CD integration capabilities.

Made-with: Cursor
2026-03-29 21:43:20 +03:00

47 lines
1.2 KiB
Docker

# Cluster Manager Service Dockerfile
FROM python:3.11-slim
WORKDIR /app
# Install system dependencies
# Force IPv4 to avoid IPv6 connectivity issues in build environments
RUN echo 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/99force-ipv4 && \
apt-get update && apt-get install -y --no-install-recommends \
gcc \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements first for caching
COPY services/cluster-manager/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy proto files and generate Python code
COPY proto/ /app/proto/
RUN python -m grpc_tools.protoc \
-I/app/proto \
--python_out=/app/proto \
--grpc_python_out=/app/proto \
/app/proto/cluster_manager.proto
# Fix proto imports
RUN sed -i 's/^import cluster_manager_pb2/from . import cluster_manager_pb2/' /app/proto/cluster_manager_pb2_grpc.py
# Create __init__.py for proto package
RUN echo "# Generated proto package" > /app/proto/__init__.py
# Copy application code
COPY services/cluster-manager/app/ /app/app/
# Create non-root user
RUN useradd --create-home appuser
USER appuser
# Environment variables
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app
# Expose gRPC port
EXPOSE 5001
# Run the server
CMD ["python", "-m", "app.grpc_server"]