FROM public.ecr.aws/lambda/python:3.12

# Debug: view the current directory
RUN echo ${LAMBDA_TASK_ROOT}

RUN dnf install -y tar gzip

# Install uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
    mv ~/.local/bin/uv /usr/local/bin/
RUN uv --version

# Generate requirements txt
COPY pyproject.toml uv.lock README.md ${LAMBDA_TASK_ROOT}
RUN uv export --no-emit-project --no-hashes --frozen --no-dev --no-editable -o ${LAMBDA_TASK_ROOT}/requirements.txt

# # Copy requirements.txt
# COPY requirements.txt ${LAMBDA_TASK_ROOT}

# Install the specified packages
RUN pip install -r requirements.txt

# Copy function code
COPY src/.  ${LAMBDA_TASK_ROOT}/

# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "celery_cloud.runners.aws_lambda_runner.lambda_handler" ]

