はい、どうも。Dockerfileで全く意味の分からなかった記述があったので、そのことについて調査したことをまとめておきたいと思います。
apy-key add – の – の意味
結論
この – (ハイフンは)標準入力という意味です。
標準出力ということは分かったんですが、このコマンドを理解するにはいくつかの知識が必要です。
詳細
きっかけはdockerfileに記載されていた以下のコマンドです。
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add –
このコマンドを理解するために知っておかないといけない知識は以下の通りです。
- 前半のcurlコマンドで何が取得されるか。
- |(パイプ)で何をしているか。
- apt-key add – の意味。
まず前半のcurlコマンドで何が取得されるかについてです。
例えばcurl 鍵のURL
と記載があった場合、鍵の情報を取得します。実際にターミナルに前半部分のcurlを打ち込んでみると、以下のような表示になります。
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFf0j5oBEADS6cItqCbf4lOLICohq2aHqM5I1jsz3DC4ddIU5ONbKXP1t0wk
FEUPRzd6m80cTo7Q02Bw7enh4J6HvM5XVBSSGKENP6XAsiOZnY9nkXlcQAPFRnCn
(中略)
zgkwMlt8C0vU0i/EElpqx/0n19iHv7XvPn5q0MdNBS5pW+DOho0D+z+NM9MWpYUu
ymC/28jo8Olju+9DZuZwEUEbptmltcA8UQ5r4FHx4m3sfCmCs1QUeb8TPNL0x8OA
XnADXbxMgGYTNX7YvdUw3a8M73stqnN9M8lUXln7ulOCee2z
=IgpF
-----END PGP PUBLIC KEY BLOCK-----
これ、yarnパッケージをインストールする際に使用する公開鍵のようですね。これを前半のcurlコマンドを使って取得しているということです。
ちなみにcurlコマンドはインストールなどはできません。あくまでもPostやGetなどのリクエストを送ってその返信がかえってくることになります。
続いて、 | (パイプ)の意味ですが、これは標準出力を標準入力に切り替える時に使います。
例えば今回の場合、curl 鍵のURL | apt-key add – とすることで、取得した鍵の情報を、apt-key add – の ‘ – ‘部分に入力しますということを意味しています。
鍵の情報は、画面に文字が表示されるということで出力の情報です。一方その情報をapt-keyに追加したいという処理になるので、これは入力の情報です。
つまり – を入れておくことで、apt-key に取得した公開鍵を登録するという処理をしているということですね。
だいたいわかっていただけたでしょうか。ちょっと理解しにくい部分もあったと思いますが 私も理解できていない部分もあると思うので、もし違ってたらコメントください。では!