LoginSignup
4
0

AWS Lambda 用のイメージから作成されたコンテナにVSCodeからAttachする際のエラー解決

Last updated at Posted at 2023-10-11

目的

AWS Lambda 用のイメージから作成されたコンテナにVSCodeの「Remote - Containers」拡張機能からAttachする際、以下のようなエラーが発生し、接続できませんでした。

tar: command not found
tar (grandchild): gzip: Cannot exec: No such file or directory

その解決方法の備忘録です。

問題

以下のようなDockerfileがあります。
イメージにはAWS公式のリポジトリから取得したpublic.ecr.aws/lambda/python:3.11を使用します。

FROM public.ecr.aws/lambda/python:3.11 as dev

# requirements.txtを使用して関数の依存関係をインストールする。
COPY requirements.txt  .
RUN  pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"

# AWS ベースイメージには、環境変数「LAMBDA_TASK_ROOT=/var/task」が含まれています。
COPY app.py ${LAMBDA_TASK_ROOT}

# Dockerイメージ内の実行時のデフォルトコマンドを設定します。
CMD [ "app.handler" ]

このイメージによって作成されたコンテナにVSCodeからAttachする際、冒頭のエラーが発生します。
エラー内容は以下の2つ

・tar コマンドが Docker コンテナ内に存在しない
・tarがgzipを実行できない

解決方法

VSCodeの「Remote - Containers」拡張機能は、コンテナ内部で tar コマンドを使っていくつかの操作を実行します。したがって、このコマンドが利用可能であることが前提となります。
なので、エラー内容に従って不足しているパッケージをインストールすればOK

# tar と gzip パッケージのインストール (VSCodeでの開発に利用します。)
RUN yum install -y tar gzip

まとめ

エラーはよく読みましょう(戒め)

4
0
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
4
0