1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerでPython 3.8用のpsutilをインストールしてみた

Posted at

動機

ことの始まりはとある先輩からのオーダー。。。
「最新のpyhon3系で動かしているlambdaのメモリ容量取得するようなコードかいてよ。」

よっしわかったよ。
クソ野郎やってやろうじゃないかと意気込んでLambdaの最新のpython3系のランタイムをみたら、、、
python3.8.....になってた。えっ、、、いつのまに3.8に。。。。

ということでpyrhon3.8かつamazonlinux2(Lambdaの実行環境がamazonlinuxとのことなので)で
インストールした外部ライブラリが必要になった。。。

Dockerファイル

さくっとPython外部ライブラリを準備したかったのでDocker使いました。
Docker for Macです。

python3.8をインストールするために作成したDockerファイルは下記の通り

FROM amazonlinux:2
  
RUN yum -y update
RUN yum -y install gcc openssl-devel bzip2-devel libffi-devel
RUN yum -y install wget
RUN yum -y install tar
RUN yum -y install gzip
RUN yum -y install make
RUN wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
RUN tar xzf Python-3.8.1.tgz
RUN cd Python-3.8.1
RUN  ./Python-3.8.1/configure --enable-optimizations
RUN make altinstall
RUN python3.8 --version
RUN mkdir /home/deploy

※もっとこう書けるよってのがあったら教えて下さい!

#docker-compose.yml

さっきのDockerfileでpython3.8系はインストールできたので、外部ライブラリをpipでおとすためのdocker-compose.ymlは下記の通り

docker-compose.yml
version: '2'
services:
  app:
    build: .
    volumes:
     - './deploy:/home/deploy'
    command: pip3.8 install -r /home/deploy/requirements.txt -t /home/deploy/dist

requirements.txtにはpsutilを書いてます。

※ちなみにディレクトリ構成はこんな感じ

.
├── docker-compose.yml
├── deploy
│   ├── requirements.txt
│   └── dist
└── Dockerfile

結論

こうやって落とした外部ライブラリとpythonのソースをzipで固めて、Lambdaにアップロードしたら正常にうごきました!
(外部ライブラリを使うときはランタイムと実行元のOSを使っておとした物を使わないといけないのが手間オブ手間s・・・)

以上!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?