-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathDockerfile.runner
More file actions
69 lines (48 loc) · 1.89 KB
/
Dockerfile.runner
File metadata and controls
69 lines (48 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
ARG LAMBDA_IMAGE="amazon/aws-lambda-provided:al2"
ARG RIE_ARCH="amd64"
FROM condaforge/miniforge3:latest AS condasetup
LABEL MAINTAINER="Howard Butler <howard@hobu.co>"
ARG TARGETPLATFORM
ARG TARGETARCH
ARG TARGETVARIANT
RUN printf "I'm building for TARGETPLATFORM=${TARGETPLATFORM}" \
&& printf ", TARGETARCH=${TARGETARCH}" \
&& printf ", TARGETVARIANT=${TARGETVARIANT} \n" \
&& printf "With uname -s : " && uname -s \
&& printf "and uname -m : " && uname -mm
ENV CONDA_ENV_NAME="pdal"
ENV CONDAENV="/opt/conda/envs/${CONDA_ENV_NAME}"
# Create the environment:
COPY ./docker/build-environment.yml .
RUN conda env create -f build-environment.yml
RUN mamba update --all -y
COPY ./docker/run-environment.yml .
RUN conda env create -f run-environment.yml
SHELL ["conda", "run", "-n", "build", "/bin/bash", "-c"]
RUN conda-pack -n ${CONDA_ENV_NAME} --dest-prefix=/var/task -o /tmp/env.tar && \
mkdir /venv && cd /venv && tar xf /tmp/env.tar && \
rm /tmp/env.tar
FROM --platform=$TARGETPLATFORM ${LAMBDA_IMAGE:?} AS al2
ARG RIE_ARCH
ARG LAMBDA_IMAGE
ARG TARGETPLATFORM
ARG TARGETARCH
ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
ENV TARGETARCH=${TARGETARCH:-amd64}
ENV CONDAENV="/var/task"
ENV CONDA_PREFIX="/var/task"
ENV TARGETPLATFORM="${TARGETPLATFORM}"
COPY --from=condasetup /venv ${CONDAENV}
ENV PROJ_LIB=${CONDAENV}/share/proj
ENV PROJ_NETWORK=TRUE
ENV PATH=$PATH:${CONDAENV}/bin
ENV LD_LIBRARY_PATH=${CONDAENV}/lib
ENV HOME=/var/task/
RUN /var/task/bin/python -m pip install awslambdaric==3.1.1
ADD https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie-${RIE_ARCH} /usr/bin/aws-lambda-rie
RUN chmod +x /usr/bin/aws-lambda-rie
WORKDIR /var/task
COPY ./docker/python-entry.sh ./
COPY ./handlers/python/ /var/task/lib/python3.11/site-packages/pdal_lambda
COPY ./docker/root-bashrc /root/.bashrc
ENTRYPOINT [ "/var/task/python-entry.sh" ]