質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1166閲覧

DockerへのTA-Libのインストール時エラーを解消したい【Python3.8】

_whitecat_22

総合スコア1305

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/04 05:59

Pythonにて、TA-Libを利用したデータ解析から描画(matplotlib, seaborn)を行ないたく、Lambda関数を組んでいます。
各種ライブラリの容量が大きいことから通常の関数構築方法では困難なため、コンテナイメージでLambdaの構築を試みています。
しかし、Dockerfileでのコンテナイメージ作成時に、TA-Libのインストールが上手くできません。

知見をお持ちの方、是非、解決策をご教示ください。
どうぞよろしくお願いいたします。

  • 環境

Python 3.8 (Runtime)
Amazon Linux 2  ※Lambdaの環境

  • (開発環境)

Windows 10 (20H2)
VSCode
Python 3.9.5

Dockerfile

Dockerfile

1FROM public.ecr.aws/lambda/python:3.8 2ENV AWS_DEFAULT_REGION ap-northeast-1 3 4RUN yum -y install wget 5RUN yum -y install tar 6 7RUN pip install numpy 8RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz && \ 9 tar -zxvf ta-lib-0.4.0-src.tar.gz && \ 10 cd ta-lib && \ 11 ./configure --prefix=/usr && \ 12 make && \ 13 sudo make install 14RUN cd .. && \ 15 rm -rf ta-lib-0.4.0-src.tar.gz && rm -rf ta-lib 16RUN pip install TA-LIB 17RUN sudo bash -c "echo "/usr/local/lib64" >> /etc/ld.so.conf" 18RUN sudo /sbin/ldconfig 19RUN sudo /usr/local/bin/pip install ta-lib 20 21ADD . . 22 23COPY handler.py ${LAMBDA_TASK_ROOT} 24 25CMD pip3 install -r requirements.txt -t /var/task && \ 26 zip -9 deploy_package.zip handler.py && \ 27 zip -r9 deploy_package.zip * 28 29CMD [ "handler.handler" ] 30

 

docker-compose.yml

docker

1version: '3' 2services: 3 talib: 4 restart: always 5 build: . 6 container_name: 'talib' 7 working_dir: '/root/' 8 tty: true
ログ

terminal

1C:\Users\XXXXXXXX\Documents\python\serverless\stock-price-chart\venv>docker build -t stock-price-chart-image . 2[+] Building 3.0s (7/16) 3[+] Building 3.1s (7/16) 4[+] Building 3.3s (7/16) 5[+] Building 3.5s (7/16) 6[+] Building 3.6s (9/16) 7 => [internal] load build definition from Dockerfile 0.1s 8 => => transferring dockerfile: 996B 0.0s 9 => [internal] load .dockerignore 0.0s 10 => => transferring context: 2B 0.0s 11 => [internal] load metadata for public.ecr.aws/lambda/python:3.8 1.0s 12 => [ 1/12] FROM public.ecr.aws/lambda/python:3.8@sha256:eaca381008ba7fd5c52386989413bcc351b6e8f41f3247676198c936 0.0s 13 => CANCELED [internal] load build context 2.4s 14 => => transferring context: 58.24MB 2.3s 15 => CACHED [ 2/12] RUN yum -y install wget 0.0s 16 => CACHED [ 3/12] RUN yum -y install tar 0.0s 17 => CACHED [ 4/12] RUN pip install numpy 0.0s 18 => ERROR [ 5/12] RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz && tar -zxvf ta- 2.4s 19------ 20 > [ 5/12] RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz && tar -zxvf ta-lib-0.4.0-src.tar.gz && cd ta-lib && ./configure --prefix=/usr && make && sudo make install: 21#8 0.692 --2021-06-04 05:39:16-- http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz 22#8 0.692 Resolving prdownloads.sourceforge.net (prdownloads.sourceforge.net)... 216.105.38.13 23#8 0.860 Connecting to prdownloads.sourceforge.net (prdownloads.sourceforge.net)|216.105.38.13|:80... connected. 24#8 1.035 HTTP request sent, awaiting response... 301 Moved Permanently 25#8 1.222 Location: http://downloads.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz [following] 26#8 1.222 --2021-06-04 05:39:17-- http://downloads.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz 27#8 1.222 Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13 28#8 1.331 Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... connected. 29#8 1.494 HTTP request sent, awaiting response... 302 Found 30#8 1.690 Location: https://jaist.dl.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz [following] 31#8 1.690 --2021-06-04 05:39:17-- https://jaist.dl.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz 32#8 1.712 Resolving jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)... 150.65.7.130, 2001:df0:2ed:feed::feed 33#8 1.715 Connecting to jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|150.65.7.130|:443... connected. 34#8 1.795 HTTP request sent, awaiting response... 200 OK 35#8 1.820 Length: 1330299 (1.3M) [application/x-gzip] 36#8 1.820 Saving to: ‘ta-lib-0.4.0-src.tar.gz’ 37#8 1.824 38#8 1.824 0K .......... .......... .......... .......... .......... 3% 1.35M 1s 39#8 1.852 50K .......... .......... .......... .......... .......... 7% 1.54M 1s 40#8 1.884 100K .......... .......... .......... .......... .......... 11% 2.76M 1s 41#8 1.902 150K .......... .......... .......... .......... .......... 15% 2.49M 1s 42#8 1.925 200K .......... .......... .......... .......... .......... 19% 2.96M 1s 43#8 1.938 250K .......... .......... .......... .......... .......... 23% 6.60M 0s 44#8 1.945 300K .......... .......... .......... .......... .......... 26% 3.52M 0s 45#8 1.959 350K .......... .......... .......... .......... .......... 30% 2.36M 0s 46#8 1.980 400K .......... .......... .......... .......... .......... 34% 7.61M 0s 47#8 1.986 450K .......... .......... .......... .......... .......... 38% 3.59M 0s 48#8 2.000 500K .......... .......... .......... .......... .......... 42% 4.94M 0s 49#8 2.010 550K .......... .......... .......... .......... .......... 46% 4.64M 0s 50#8 2.027 600K .......... .......... .......... .......... .......... 50% 10.5M 0s 51#8 2.027 650K .......... .......... .......... .......... .......... 53% 3.23M 0s 52#8 2.040 700K .......... .......... .......... .......... .......... 57% 15.4M 0s 53#8 2.043 750K .......... .......... .......... .......... .......... 61% 6.04M 0s 54#8 2.055 800K .......... .......... .......... .......... .......... 65% 3.83M 0s 55#8 2.064 850K .......... .......... .......... .......... .......... 69% 6.76M 0s 56#8 2.071 900K .......... .......... .......... .......... .......... 73% 4.79M 0s 57#8 2.085 950K .......... .......... .......... .......... .......... 76% 47.3M 0s 58#8 2.085 1000K .......... .......... .......... .......... .......... 80% 6.38M 0s 59#8 2.090 1050K .......... .......... .......... .......... .......... 84% 5.90M 0s 60#8 2.098 1100K .......... .......... .......... .......... .......... 88% 15.5M 0s 61#8 2.114 1150K .......... .......... .......... .......... .......... 92% 48.9M 0s 62#8 2.114 1200K .......... .......... .......... .......... .......... 96% 6.32M 0s 63#8 2.114 1250K .......... .......... .......... .......... ......... 100% 2.93M=0.3s 64#8 2.133 65#8 2.133 2021-06-04 05:39:18 (4.09 MB/s) - ‘ta-lib-0.4.0-src.tar.gz’ saved [1330299/1330299] 66#8 2.133 67#8 2.133 tar (child): gzip: Cannot exec: No such file or directory 68#8 2.133 tar (child): Error is not recoverable: exiting now 69#8 2.135 tar: Child returned status 2 70#8 2.136 tar: Error is not recoverable: exiting now 71------ 72executor failed running [/bin/sh -c wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz && tar -zxvf ta-lib-0.4.0-src.tar.gz && cd ta-lib && ./configure --prefix=/usr && make && sudo make install]: exit code: 2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

Dockerfile を以下のように変更することで、TA-Lib のインストールはできました。

Dockerfile

1FROM public.ecr.aws/lambda/python:3.8 2ENV AWS_DEFAULT_REGION ap-northeast-1 3 4RUN pip3 install --upgrade pip 5RUN yum groupinstall "Development Tools" -y 6RUN yum -y install wget 7RUN yum -y install tar 8RUN yum -y install gzip 9#RUN sudo yum install python38 -y 10#RUN sudo yum install python38-devel -y 11#RUN sudo /usr/bin/pip38 install --upgrade pip 12#RUN sudo yum groupinstall "Development Tools" -y 13 14RUN export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 15 16RUN wget --quiet http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz -O ta-lib-0.4.0-src.tar.gz && \ 17 tar xvf ta-lib-0.4.0-src.tar.gz && \ 18 cd ta-lib/ && \ 19 ./configure --prefix=/usr && \ 20 make && \ 21 make install && \ 22 cd .. && \ 23 pip install --upgrade --force-reinstall TA-Lib && \ 24 rm -R ta-lib ta-lib-0.4.0-src.tar.gz 25 26CMD sudo su - 27CMD echo "include /usr/local/lib" >> /etc/ld.so.conf 28CMD ldconfig 29 30RUN pip3 install numpy 31 32ADD . . 33 34COPY handler.py ${LAMBDA_TASK_ROOT} 35 36CMD pip3 install -r requirements.txt -t /var/task && \ 37 zip -9 deploy_package.zip handler.py && \ 38 zip -r9 deploy_package.zip * 39 40CMD [ "handler.lambdahandler" ]

 

現在、ECR(コンテナイメージ)をLambda関数として設定し、実行にまで漕ぎ着けましたが、テストで躓いています。
⇒ これはまだ別の質問とします。

log

1[ERROR] Runtime.ImportModuleError: Unable to import module 'handler': libta_lib.so.0: cannot open shared object file: No such file or directory

投稿2021/06/04 13:22

_whitecat_22

総合スコア1305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問