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

推薦する

Centos8 で Docker を使用して Django プロジェクトをデプロイする詳細なチュートリアル

導入この記事では、django + uwsgi + nginx デプロイメントを使用して、Docke...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

MySQL ストアド プロシージャの in、out、inout パラメータの例と概要

ストアドプロシージャ1. ストアドプロシージャを作成し、グローバル変数を表示する mysql>...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...

ウェブデザインで注意すべき検索最適化の知識

1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...

Html+CSS フローティング広告ストリップの実装

1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...

HTML フォーム コンポーネントのサンプル コード

HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。次のコードは、HTM...

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...

Windows Server 2012 リモート デスクトップ ライセンス サーバーがライセンスを提供できず、リモート セッションが切断される

本日、会社の内部サーバーにログインしたところ、リモートアクセスができませんでした。エラー メッセージ...

MySQL トリガー構文とアプリケーション例

この記事では、例を使用して MySQL トリガーの構文とアプリケーションを説明します。ご参考までに、...

シンプルなページング効果を実現するjQuery+Ajax

この記事では、ページング効果を実現するためのjquery+Ajaxの具体的なコードを参考までに紹介し...

HTMLにおけるbackground-image属性の設定の詳細な説明

写真といえば、まず背景画像が思い浮かびます。私たちの装飾の多くは背景画像を使用して実現されているから...

フレームセットの共通プロパティ(フレームとウィンドウの分割)

フレームとは、Web ページ画面を複数のフレームに分割したもの(複数の Web ページという形で表示...

Tomcat で server.xml と content.xml を変更した後の自動復元の問題の解決方法

設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...