DockerでPython環境をパッケージ化するプロセスの詳細な説明

DockerでPython環境をパッケージ化するプロセスの詳細な説明

docker パッケージング Python 環境の手順は次のとおりです。

1 pip listの下にある依存パッケージをエクスポートする

pip フリーズ > requirements.txt

エクスポートしたrequirements.txtをdocker_testディレクトリに置きます。

docker_test はパッケージ化するコード ソース フォルダーです。このデモのdocker_testフォルダにはrequirements.txtとapp.pyファイルが必要です。

2. Dockfileを書く

docker_test と同じディレクトリに Dockerfile を作成します。形式は次のとおりです。

#FROM python:3.9.6 に基づくベースイメージ

# メンテナー情報 メンテナー名 [email protected]

# docker_test ディレクトリのコードをイメージ内のコード フォルダに追加します (2 つのディレクトリ パラメータの間にはスペースがあります)

./docker_test /code を追加します。

# コードフォルダを作業ディレクトリに設定する WORKDIR /code

# インストールサポート RUN pip install -r requirements.txt

#docker の実行中に app.py ファイルを実行しますCMD ["python","/code/app.py"]

3. イメージを作成する

docker build -t イメージ名 Dockerfilepath 

# Dockerfilepath: Dockerfile が配置されているフォルダーの名前。現在のディレクトリは "." です。 

ビルドを実行します。

4 イメージを実行する

docker run -t -i d_t

5 運用結果

ps: dockerでパッケージ化されたPythonプログラムを見てみましょう

手順: 環境を準備する - Python プログラムをコピーする - プログラムを起動する

簡単にするために、PythonプログラムはPythonファイルapp.pyです。

アプリ.py

FlaskからFlaskをインポート
アプリ = Flask(__name__)
@app.route('/')
デフハロー():
    「hello docker」を返します
__name__ == '__main__' の場合:
    app.run(ホスト=0.0.0.0、ポート=5000)

Dockerファイル

Python:2.7から
ラベル メンテナー="Peng Xiao<[email protected]>"
pip install flaskを実行します。
app.py /app/ をコピーする
ワークディレクトリ /app
エクスポーズ5000
コマンド ["python", "app.py"]

イメージをビルドしてコンテナを起動する

python で soymilk を実行します。
docker run -d 豆乳/python-test

これで、docker で Python 環境をパッケージ化するプロセスに関するこの記事は終了です。docker で Python 環境をパッケージ化するプロセスの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • docker pythonでパッケージングを実装する方法
  • Docker パッケージの Python コマンドの詳細な説明
  • この記事では、Dockerを使用してPythonランタイム環境をパッケージ化する方法を説明します。

<<:  MySQLトリガーについて深く理解するための記事

>>:  CSS3 の Flex レイアウトの詳細な分析

推薦する

Vuexの補助関数の使い方

目次マップ状態マップゲッターマップミューテーションマップアクション複数のモジュールマップ状態 ...

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

JavaScript ES 新機能ブロックスコープ

目次1. ブロックスコープとは何ですか? 2. ブロックスコープが必要なのはなぜですか? 3. 関数...

デザイン理論:テキスト表現とユーザビリティ

<br />テキストデザインでは、通常、テキストのレイアウト、つまりテキストをより美しく...

jQuery キャンバスで画像検証コード例を描画する

この記事では、jQuery Canvasの描画画像検証コードの具体的なコードを例として紹介します。具...

MySQL の NOT IN 充填ピットの NULL 列の問題の解決方法

以前、会社で小さな機能に取り組んでいたとき、特定の状況でデータがいくつあるかを数えてから問題を修正し...

html2canvas を使用して、Baidu マップを含む Dom 要素を画像に処理するソリューション

問題 1: Baidu Map はタイル画像 (地図が写真で構成されている) を使用しています。ht...

Vue3 親子コンポーネントパラメータ転送における sync 修飾子の使用法の詳細な説明

目次一方向データフローの説明Vue2.x の使用法親コンポーネントに変更を通知するイベントのフォーム...

JavaScript の遅延読み込み属性パターンを理解する

従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...

MySQL は information_schema オブジェクトの付与をバイパスし、ERROR 1044 (4200) エラーを報告します

この質問は、MySQL の権限に関する WeChat グループのネットユーザー間の議論です。次のよう...

MySQL 8.0 WITH クエリの詳細

目次MySQL 8 の WITH クエリについて学ぶ1. 例3. 練習するMySQL 8 の WIT...

HTML テーブルレイアウト例の説明

HTML ドキュメント内の要素は次々に配置され、ブロックレベル要素の前後に改行が追加されるだけで、合...

MySQLの行数カウントに関する簡単な説明

各テーブルの行数をカウントするために使用される MySQL count() 関数は、誰もがよく知って...

CSS background-blend-modeの仕組みを深く理解する

この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...

CSS を使用して同じ親タグの左側と右側に 2 つのボタンを配置する方法

この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...