【Docker】PythonのAWS LambdaLayerをDockerで作成する
AWS LambdaのLayerモジュールをzip化するまでの処理をDockerで行えるようにしたので、その方法をメモ。
Dockerfile
amazonlinux
のイメージを利用することで、EC2などを用意せずにx86_64
のアーキテクチャに対応させます。
Pythonのバージョンは適宜変更する。
FROM amazonlinux ENV PATH $PATH:/usr/local/bin RUN yum -y install ¥ gcc openssl-devel bzip2-devel libffi-devel ¥ wget tar gzip zip make && ¥ wget https://www.python.org/ftp/python/3.9.11/Python-3.9.11.tgz && ¥ tar xzf Python-3.9.11.tgz && ¥ cd Python-3.9.11 && ¥ ./configure --enable-optimizations && ¥ make altinstall RUN mkdir ./python-src && ¥ python3.9 -m pip install xxx... -t ./python-src COPY . ./ RUN zip -r /tmp/aws-layer.zip ./python-src
起動スクリプト
zipファイルをカレントディレクトリに配置するまでを自動化。
#/bin/sh IMAGE_NAME=aws-layer:0.0.0 CONTAINER=aws-layer-con docker stop $CONTAINER docker rm $CONTAINER docker build -t $IMAGE_NAME . --no-cache docker run -itd --name $CONTAINER $IMAGE_NAME docker cp $CONTAINER:/tmp/layer.zip .