Docker を使用して Django プロジェクトをデプロイする方法の例

Docker を使用して Django プロジェクトをデプロイする方法の例

また、Dockerを使用してDjangoプロジェクトをデプロイするのも非常に簡単です。とても良いです。以下で共有してください。

環境

デフォルトでは、docker環境がインストールされています

Djangoプロジェクトの一般的な構造

(p3s) [root@opsweb]# ツリー opsweb
オプスウェブ
├── アプリ
├── ログ
├── manage.py
├── メディア
├──オプスウェブ
├── README.md
├── 要件.txt
└── 静的

Dockerfileの作成

ここでは、Python のバージョンは Docker が公式に提供しているものを指定します。

「0.0.0.0:8000」ここでコンテナのポート8000​​を開きます。FROM python:3.6
mkdir -p /usr/src/app を実行します。
pip.conf をコピー /root/.pip/pip.conf
opsweb /usr/src/app/ をコピーします
コピー run_web.sh /usr/src/app/
pip install -r /usr/src/app/requirements.txt を実行します。
ワークディレクトリ /usr/src/app
コマンド [ "sh", "./run_web.sh"]

pipファイルの書き込み

ここでは、Alibaba Cloudソースを使用してミラーpipをより速くインストールする方法を説明します。

[グローバル]
インデックス URL = http://mirrors.aliyun.com/pypi/simple/
[インストール]
信頼できるホスト = mirrors.aliyun.com

完全なディレクトリ構造

[ルート@opsweb]# ls
Dockerファイル opsweb pip.conf run_web.sh

イメージをビルドする

ビルドは -t ops:v0.1 です。
ビルド コンテキストを Docker デーモンに送信しています 4.849 MB
ステップ1: python:3.6から
 ---> 3e4c2972dc8d
ステップ2: mkdir -p /usr/src/appを実行します
 ---> 8ddd929f5c18 で実行中
 ---> 89dc0a1ffdf0
中間コンテナ 8ddd929f5c18 を削除しています
ステップ3: pip.confをコピーする /root/.pip/pip.conf
 ---> 5a4a165fed90
中間コンテナ 37f3fdc7e5d2 を削除しています
ステップ4: opsweb /usr/src/app/opsweb をコピーする
 ---> f602e72ffd4c
中間コンテナ 8d4bb616916d を削除しています
ステップ 5: opsweb/requirements.txt を /usr/src/app/ にコピーします。
 ---> 6fe11a6fcbe0
中間コンテナ faeadee32fed を削除しています
ステップ6: pip install -r /usr/src/app/requirements.txtを実行します。
 ---> cc09c17d53da
中間コンテナ d7b45bec6993 を削除しています
ステップ7: WORKDIR /usr/src/app
 ---> c22dfdddbe81 で実行中
 ---> c5c944b6df45
中間コンテナ c22dfdddbe81 を削除しています
ステップ 8: CMD python ./manage.py runserver 0.0.0.0:8000
 ---> 29d5f0f53f6e で実行中
 ---> 10d37173fd13
中間コンテナ 29d5f0f53f6e を削除しています
10d37173fd13 の構築に成功しました

結論

このようにしてイメージが構築され、docker run -p8000:8000 ops:v0.1 -d で直接起動したり、k8s にデプロイしたりできます。これも非常に簡単なので、ここでは詳細には触れません。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Django ログ設定を日付順にロールする方法
  • クロスドメインリクエストの問題に対する Django のソリューションの詳細な説明
  • Django でスケジュールされたタスクを設定する方法
  • Djangoを紹介します
  • Djangoを使用してMysqlデータベースに接続する手順
  • Django フレームワーク テンプレートの紹介
  • Djangoは、ログインとアクセス制御を制御するミドルウェア方式を実装しています。
  • k8sを使用してDjangoプロジェクトをデプロイする手順
  • Django データベースのデータ関係: 1 対 1、1 対多、多対多
  • Django 2.0 拡張ユーザーフィールドの例

<<:  Linux オペレーティング システムでよく使用される MySQL コマンドの概要

>>:  Vue.js でフォントを読み込む正しい方法

推薦する

Nginx のパラメータをオンにして Web パフォーマンスを 3 倍向上させる方法

1. 遭遇したいくつかの問題2008 年にパフォーマンス テストを行っていたとき、パフォーマンス テ...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

画像の盗難を防ぐために Nginx で Referer を設定する方法

サーバーの画像が他のウェブサイトからホットリンクされると、サーバーの帯域幅とアクセス速度に影響します...

Mysql SQL ステートメント演習 (50 問)

テーブル名とフィールド–1. 学生リスト学生 (s_id、s_name、s_birth、s_sex)...

Win7x64でのMySQL 5.7.18解凍版のインストール方法

関連記事: Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールする...

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

Dockerは異常なコンテナ操作を排除する

この初心者は、Docker を学び始めたばかりの頃にこのような問題に遭遇しました。記録しておきます。...

...

モバイルレイアウト用の動的REMの実装

ダイナミックレム1. まず、現在の長さの単位を紹介しましょうpx em Mの幅 / 漢字の幅 1em...

MySQLデータベースでゼロ値を含む日付の問題について簡単に説明します

デフォルトでは、MySQL は日付に 0 値を挿入することを受け入れますが、実際には日付の 0 値に...

Websocket+Vuexはリアルタイムチャットソフトウェアを実装します

目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...

XHTMLにおけるH1タグの位置について

最近、H1 については多くの議論が行われていますが (記事のコンテンツ ページ内)、おおよそ 2 つ...

トークンの有効期限が切れたときにページを更新するときに繰り返しプロンプトが表示されないようにする Vue について

トークンの有効期限が切れたら、ページを更新します。ページの読み込み時にバックエンドに複数のリクエスト...

DockerはElasticsearch7.6クラスタをインストールし、パスワードを設定します

Elasticsearch 6.8 以降、無料ユーザーは X-Pack のセキュリティ機能を使用でき...