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 レイアウトの詳細な分析

推薦する

Vue を使用した Amap アプリケーション開発のベスト プラクティス

目次序文非同期読み込みパッケージコンポーネントコンポーネントの使用インターフェースをカスタマイズする...

jQueryはシンプルなポップアップウィンドウ効果を実装します

この記事では、簡単なポップアップウィンドウ効果を実現するためのjQueryの具体的なコードを参考まで...

MySQL のデータの偶発的な削除の解決策と kill ステートメントの原則

mysql が誤ってデータを削除しました削除ステートメントを使用して誤ってデータ行を削除する誤ってデ...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

InnoDBのインデックスページ構造、挿入バッファ、適応ハッシュインデックスについての簡単な説明

InnoDB インデックスの物理構造すべての InnoDB インデックスは Btree インデックス...

CSS3でシャトル星空のアニメーションを実現

結果: html <canvas id="スターフィールド"><...

Avue でカスタム検索バーを実装し、検索イベントをクリアする実践

目次1. 検索バーの内容をカスタマイズする2. 検索ボタンをカスタマイズする検索バーをカスタマイズし...

uniappの無痛トークンリフレッシュ方法の詳細な説明

フロントエンドがインターフェースを要求すると、バックエンドでインターフェースが定義されます。ステータ...

Mysql で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

JSは文字列内の指定された文字列のn番目の出現位置を取得します

文字の位置を取得するための同様の方法について学習します。 charAt() 文字列内の指定された位置...

Zabbix を使用して Oracle データベースを監視する方法の詳細な説明

1. 概要Zabbix は非常に強力で、最も広く使用されているオープンソースの監視ソフトウェアです。...

CocosCreatorオブジェクトプールの使い方

目次序文:特定の操作ステップ1: プレハブを準備するステップ2: オブジェクトプールを初期化するステ...

Linux ホスト上で複数の MySQL データベースを起動する方法

今日は、Linux ホスト上で 4 つの MySQL データベースを起動する方法について説明します。...

CSS 配置レイアウト (位置、配置レイアウト スキル)

1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...