FROM golang:1.25-alpine AS go-builder WORKDIR /src COPY go.mod go.sum ./ COPY cmd ./cmd RUN CGO_ENABLED=0 GOOS=linux go build -o /out/monitoring-tg-classifier ./cmd/classifier \ && CGO_ENABLED=0 GOOS=linux go build -o /out/monitoring-tg-server ./cmd/server FROM python:3.11-slim ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* COPY pyproject.toml ./ COPY src ./src COPY alembic.ini ./ COPY alembic ./alembic RUN pip install --upgrade pip && pip install -e . RUN mkdir -p /data/session /data/media COPY --from=go-builder /out/monitoring-tg-classifier /usr/local/bin/monitoring-tg-classifier COPY --from=go-builder /out/monitoring-tg-server /usr/local/bin/monitoring-tg-server COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh EXPOSE 8000 ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] CMD ["/usr/local/bin/monitoring-tg-server"]