現実モデリング

データとかエンジニアリングとか健エミュとか

AWS LambdaのLayerをつくるためだけのDockerfile (Amazon Linux 2)

めんどくさかったのでメモする

Dockerfile本体

FROM amazonlinux:2

ARG PYTHON_VERSION=3.9.6

RUN yum update -y && yum install -y tar gzip make gcc openssl-devel bzip2-devel libffi-devel zip \
    && curl https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz | tar xz \
    && cd Python-${PYTHON_VERSION} && ./configure && make && make install \
    && cd - && rm -rf Python-${PYTHON_VERSION} \
    && alternatives --install /usr/bin/python python /usr/local/bin/python3 1 \
    && alternatives --install /usr/bin/pip pip /usr/local/bin/pip3 1

使用例

docker build . -t lambda_container
docker run -it lambda_container
cd ~
mkdir python
pip install snowflake-connector-python==3.0.4 -t ./python
zip -r layer.zip python
docker cp (コンテナID):/root/layer.zip layer.zip