-
Notifications
You must be signed in to change notification settings - Fork 7
/
Dockerfile
67 lines (48 loc) · 1.84 KB
/
Dockerfile
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
ARG LAMBDA_IMAGE="amazon/aws-lambda-provided:al2"
ARG RIE_ARCH="amd64"
FROM --platform=$TARGETPLATFORM 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 build-environment.yml .
RUN conda env create -f build-environment.yml
RUN mamba update --all -y
COPY 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
RUN /var/task/bin/python -m pip install awslambdaric==2.0.11
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 python-entry.sh ./
COPY pdal_handler.py ./
COPY root-bashrc /root/.bashrc
ENTRYPOINT [ "/var/task/python-entry.sh" ]
CMD ["pdal_handler.handler"]