AWS LambdaのLayerをつくるためだけのDockerfile (Amazon Linux 2)
AI要約
Amazon Linux 2ベースのDockerfileでPythonをビルドし、Lambda Layer用のzipを作成する手順メモ。
めんどくさかったのでメモする
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