こんにちは。よっしーです(^^)
今日は、Dockerで起動させた Amazon Linux 2023 ベースのコンテナで xargs をインストールした内容についてご紹介します。
背景
Dockerで起動させた Amazon Linux 2023 ベースのコンテナで xargs をインストールした内容について、備忘として記事に残しました。
エラー内容
Dockerfileの内容は下記になります。
FROM amazonlinux:2023
このとき、下記のコマンドを実行します。
docker build -t amz .
docker run -it --rm amz /bin/bash
seq 1 10 | xargs -I{} echo {}
すると下記のエラーが発生しました。
bash-5.2# seq 1 10 | xargs -I{} echo {}
bash: xargs: command not found
調査
下記のコマンドを実行しました。
dnf search xargs
下記の結果が得られました。
bash-5.2# dnf search xargs
Amazon Linux 2023 repository 5.3 MB/s | 24 MB 00:04
Last metadata expiration check: 0:00:03 ago on Fri Mar 8 13:02:08 2024.
================================================================================================================ Name & Summary Matched: xargs =================================================================================================================
texlive-xargs-doc.noarch : Documentation for xargs
===================================================================================================================== Name Matched: xargs ======================================================================================================================
texlive-xargs.noarch : Define commands with many optional arguments
==================================================================================================================== Summary Matched: xargs ====================================================================================================================
findutils.aarch64 : The GNU versions of find utilities (find and xargs)
findutilsをインストールすれば良さそうなことがわかりました。
エラー対応内容
Dockerfileを下記のように修正しました。
FROM amazonlinux:2023
RUN dnf install -y findutils
この状態で、再ビルドして、同様のコマンドを実行しました。
docker build -t amz .
docker run -it --rm amz /bin/bash
seq 1 10 | xargs -I{} echo {}
下記の結果が得られたので、エラーが解消されたことが確認できました。
bash-5.2# seq 1 10 | xargs -I{} echo {}
1
2
3
4
5
6
7
8
9
10
解説
このコードは Amazon Linux 2023 (AL2023) のDockerイメージをベースにしています。
FROM amazonlinux:2023
: この行は、Dockerfile内で使用される命令です。amazonlinux:2023
イメージをベースに新しいイメージを作成します。Amazon Linux 2023は、Amazon Linux 2(AL2)の後継であり、デフォルトのパッケージ管理ツールとして DNF を使用しています。RUN dnf install -y findutils
: この行は、Dockerイメージのビルドプロセス中に実行されるコマンドです。dnf install -y findutils
は、findutils
パッケージをインストールするためのDNFコマンドです。-y
オプションは、すべてのプロンプトに対して自動的に「はい」を選択することを意味します。findutils
は、ファイル検索ユーティリティを提供します。
簡潔に言えば、このコードはAmazon Linux 2023イメージをベースにして、findutils
パッケージをインストールするDockerイメージを作成しています。
findutils
パッケージをインストールする理由は、ファイル検索に関連するユーティリティを提供するためです。具体的には、以下のツールが含まれています:
find
コマンド: ファイルシステム内でファイルやディレクトリを検索するための強力なツールです。条件に基づいてファイルを検索し、特定の操作を実行できます。locate
コマンド: データベースを使用してファイルを高速に検索します。locate
はファイル名をキーワードとして検索し、結果を返します。xargs
コマンド: 標準入力から受け取ったデータを引数としてコマンドを実行するためのツールです。find
と組み合わせて使用することで、複雑な操作を効率的に実行できます。- その他のユーティリティ:
findutils
には他にも便利なツールが含まれています。例えば、updatedb
コマンドはlocate
コマンドのデータベースを更新します。
総じて、findutils
パッケージはファイル操作や検索に必要なツールを提供し、システム管理者や開発者にとって便利なリソースです。
おわりに
今日は、Dockerで起動させた Amazon Linux 2023 ベースのコンテナで xargs をインストールした内容についてご紹介しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント