はじめに
Docker 言語学者の皆さん、こんにちは!これまでに Docker クジラに言葉を喋らせる方法はマスターしましたが、多言語に対応させることはできるでしょうか?このチャレンジでは、環境変数(Environment Variables)を使用してクジラの挨拶の言語を切り替える Docker イメージを作成します。私たちの海の友人に、世界中の言葉を話させてあげましょう!
多言語対応クジラの作成
多言語アプリケーションを開発しており、異なる言語環境で Docker のセットアップを迅速にテストする方法が必要だと想像してみてください。そこで、この多言語対応クジラの出番です!
このチャレンジでは、柔軟で言語を認識できるコンテナを作成することで、Docker スキルを次のレベルへと引き上げます。Docker エコシステムにおける強力なツールである「環境変数」を使用して、親しみやすい Docker クジラの挨拶を動的に変更します。
作業を始める前に、チャレンジ環境を整えましょう。ターミナルで ~/project/docker ディレクトリに移動してください。そこには Docker メンターが用意したスターターファイルがいくつかあります。これらのファイルを利用することで、このチャレンジの核心となる概念に集中することができます。
クジラにグローバルな声を与える準備はできましたか?多言語コンテナの世界へ漕ぎ出しましょう!
タスク
あなたのミッションは以下の通りです:
- 提供された
entrypoint.shスクリプトを確認し、異なる言語をどのように処理しているかを理解する。 Dockerfileを修正してentrypoint.shスクリプトを組み込み、環境変数を設定する。- 完成した Dockerfile から Docker イメージをビルドする。
- 作成したイメージからコンテナを実行し、異なる言語設定を試す。
要件
このチャレンジを成功させるには、以下の条件を満たす必要があります:
- Dockerfile のベースイメージ(Base Image)として
docker/whalesayを使用すること。 - Dockerfile 内で
WHALE_LANGUAGEという名前の環境変数を作成し、デフォルト値を "English" に設定すること。 - Dockerfile の
COPY命令を使用して、提供されたentrypoint.shスクリプトをイメージのルートディレクトリ(/)に/entrypoint.shという名前でコピーすること。実行権限があることを確認し、それをENTRYPOINTとして設定すること。 - イメージを
polyglot-whaleというタグでビルドすること。 - 環境変数を設定してコンテナを実行し、クジラが英語とスペイン語の両方を話せることを確認すること。
- すべてのコマンドは
~/project/dockerディレクトリで実行すること。
entrypoint.sh スクリプトはあらかじめ用意されています。主なタスクは、このスクリプトを正しく利用し、環境変数を介して言語のカスタマイズを可能にする Dockerfile を作成することです。
実行例
スペイン語を選択してコンテナを実行すると、以下のような出力が表示されるはずです:
docker run -e WHALE_LANGUAGE=Spanish polyglot-whale
_________
< ¡Hola! >
---------
\
\
\
### .
### ### ### ==
### ### ### ### ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
また、デフォルトの英語設定で実行した場合は以下のようになります:
docker run polyglot-whale
_________
< Hello! >
---------
\
\
\
### .
### ### ### ==
### ### ### ### ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
まとめ
このチャレンジでは、設定に環境変数を使用するイメージを作成することで、Docker スキルを拡張しました。以下の方法を学習しました:
- Dockerfile で環境変数を使用してデフォルト値を設定する方法。
- コンテナの実行ポイント(Entrypoint)として機能するシンプルなシェルスクリプトを作成する方法。
- コンテナ実行時に環境変数を上書き(オーバーライド)する方法。
これらのスキルは、異なる環境やユースケースに適応できる、柔軟で構成可能な Docker イメージを作成するために不可欠です。Docker の学習を続ける中で、環境変数はコンテナの汎用性を高め、さまざまなデプロイシナリオでの管理を容易にする強力なツールであることを忘れないでください。引き続き、クジラとの対話を楽しんでください!



