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-router は現在の場所 (/path) へのナビゲーションを許可しません。エラーの原因と修正

目次エラーメッセージ原因エラーのデモンストレーション回避策方法1方法2方法3エラーメッセージ現在の場...

60件のページング事例と優れた実践例を推奨

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

nginx を使用して静的リソース サーバーを構築する方法

Windows を例にとると、Linux も実際には同じです。静的リソースサーバーを構築するパソコン...

Nginx 仮想ホストの詳細な分析

目次1. 仮想ホスト1.1 仮想ホストの概念1.2 仮想ホストタイプ2. IP仮想ホストに基づく2....

Vueナンバープレート入力コンポーネントの使い方の詳しい説明

参考までに、シンプルなナンバープレート入力コンポーネント(vue)です。具体的な内容は次のとおりです...

JavaScript タイマーの種類の概要

目次1.setInterval() 2.タイムアウトを設定する() 1.setInterval()指...

オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析

同じ関数や HTML コードが複数回使用される場合は、それらをコンポーネントに抽出することを検討でき...

MySQLのユーザー権限の確認と管理方法の詳細な説明

この記事では、例を使用して、MySQL ユーザー権限を確認および管理する方法を説明します。ご参考まで...

ソケット '/tmp/mysql.sock' 経由でローカル MySQL に接続できない解決策

エラーメッセージ:エラー 2002: ソケット '/tmp/mysql.sock' ...

SSH ポート転送、ローカル ポート転送、リモート ポート転送、動的ポート転送の詳細

パート 1 SSH ポート転送の概要カフェで無料Wi-Fiを利用しているとき、誰かがあなたのパスワー...

CentOS7 環境での DHCP 設定チュートリアル

目次CentOS7環境での設定コマンド手順1. DHCP設定ファイルを設定する2. グローバル構成を...

MySQL学習記録: KEYパーティションが引き起こした血なまぐさい事件

需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...

CentOS 7 で yum を使用して MySQL 5.7.20 をインストールする最も簡単な方法

CentOS7 のデフォルトのデータベースは mariadb ですが、mysql を使っている人も多...

HTML ページをズームアウトした後にスクロール バーを表示するためのサンプル コード

ここでは、HTML ページのサイズを縮小した後に下部にスクロール バーを表示し、スクロール バーをス...

Vue3 での Teleport の使用に関する詳細な説明

目次テレポートの目的テレポートの仕組みこの記事では、以下の内容を取り上げます。テレポートの目的テレポ...