mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
49 lines
1.4 KiB
Docker
49 lines
1.4 KiB
Docker
# 3.11 required: domain.modelling.measure_type uses enum.StrEnum (added in 3.11).
|
|
FROM public.ecr.aws/lambda/python:3.11
|
|
# FROM python:3.11.10-bullseye
|
|
|
|
|
|
ARG DEV_DB_HOST
|
|
ARG DEV_DB_PORT
|
|
ARG DEV_DB_NAME
|
|
ARG EPC_AUTH_TOKEN
|
|
ARG OPEN_EPC_API_TOKEN
|
|
|
|
ENV DB_HOST=${DEV_DB_HOST}
|
|
ENV DB_PORT=${DEV_DB_PORT}
|
|
ENV DB_NAME=${DEV_DB_NAME}
|
|
ENV EPC_AUTH_TOKEN=${EPC_AUTH_TOKEN}
|
|
ENV OPEN_EPC_API_TOKEN=${OPEN_EPC_API_TOKEN}
|
|
|
|
|
|
# Set working directory (Lambda task root)
|
|
WORKDIR /var/task
|
|
|
|
# -----------------------------
|
|
# Copy requirements FIRST (for Docker layer caching)
|
|
# -----------------------------
|
|
COPY backend/address2UPRN/handler/requirements.txt .
|
|
|
|
|
|
# Install dependencies into Lambda runtime
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
|
|
# Copy necessary files for database and utility imports
|
|
COPY utils/ utils/
|
|
COPY backend/ backend/
|
|
COPY datatypes/ datatypes/
|
|
# main.py imports infrastructure.epc_client.epc_client_service (EpcClientService);
|
|
# without this the lambda fails at init with "No module named 'infrastructure'".
|
|
COPY infrastructure/ infrastructure/
|
|
# EpcClientService -> datatypes.epc.domain.mapper -> domain.sap10_calculator;
|
|
# without this the lambda fails at init with "No module named 'domain'".
|
|
COPY domain/ domain/
|
|
|
|
# Copy the handler
|
|
COPY backend/address2UPRN/main.py .
|
|
|
|
# -----------------------------
|
|
# Lambda handler
|
|
# -----------------------------
|
|
CMD ["main.handler"]
|