Linux 上の Docker: コンテナーの自動テストと監視を実行するにはどうすればよいですか?
コンテナ テクノロジーの急速な発展により、Docker は最も人気のあるコンテナ化プラットフォームの 1 つになりました。アプリケーションのデプロイと管理に Docker を使用するプロセスでは、コンテナの自動テストと監視が特に重要です。この記事では、Linux で Docker を使用してコンテナーのテストと監視を自動化する方法を紹介し、対応するコード例を示します。
1. Docker 自動テスト
FROM python:3.8-alpine WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ "python", "./app.py" ]
上記の Dockerfile は Python ベースのアプリケーション用に作成され、最初に python:3.8-alpine
イメージに基づいて新しいイメージを構築します。 。次に、作業ディレクトリを /app
に設定し、アプリケーションに必要な依存関係ファイル requirements.txt
をコンテナーにコピーし、依存関係をインストールします。次に、現在のディレクトリ内のすべてのファイルをコンテナにコピーし、CMD
ディレクティブを通じてコンテナの起動時に実行するコマンドを指定します。
docker build
コマンドを使用して Docker イメージを構築できます。 #$ docker build -t myapp:latest .
という名前の最新バージョンのイメージを構築します。 次に、
コマンドを使用してコンテナを実行し、以下に示すように、対応するポート マッピングとその他の構成を指定します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$ docker run -d -p 8080:8080 --name myapp-container myapp:latest</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のコマンドは、
コンテナという名前のコンテナを作成し、コンテナ内の 8080 ポートをホストの 8080 ポートにマップします。
import unittest import requests class TestApp(unittest.TestCase): def setUp(self): self.url = 'http://localhost:8080/' def tearDown(self): pass def test_hello(self): response = requests.get(self.url + 'hello') self.assertEqual(response.status_code, 200) self.assertEqual(response.text, 'Hello, world!') if __name__ == '__main__': unittest.main()
メソッドを使用してテスト環境を初期化し、tearDown
メソッドを使用します。テスト環境をクリーンアップするために使用されます。 test_hello
メソッドは、requests
ライブラリを使用して HTTP リクエストを送信し、返された結果が期待を満たしているかどうかを判断するためのアサーションを行う特定のテスト ケースです。
$ python test_app.py
Prometheus 監視を使用する
FROM prom/prometheus:v2.26.0 COPY prometheus.yml /etc/prometheus/
global: scrape_interval: 5s scrape_configs: - job_name: 'myapp' static_configs: - targets: ['myapp-container:8080']
でデータ収集の間隔を指定し、scrape_configs
でデータ収集の間隔を定義します。監視対象。
$ docker run -d -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus:v2.26.0
という名前のコンテナを実行し、コンテナ内の 9090 ポートをホストの 9090 ポートにマップし、prometheus.yml をマウントします。ホスト上の
ファイルをコンテナーに追加します。
概要
参考資料:
Docker 公式ドキュメント: https://docs.docker.com/Prometheus 公式ドキュメント: https://prometheus.io/ docs /以上がLinux での Docker: コンテナーのテストと監視を自動化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。