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 でフォントを読み込む正しい方法

推薦する

Vue 親子コンポーネントの相互値の転送と呼び出し

目次1. 親が子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに値を渡す3. 子コ...

Nginx 逆生成 Mogilefs 分散ストレージ例の詳細な説明

1. 分散ストレージシステムの概要情報技術の継続的な発展により、利便性がもたらされる一方で、データ量...

MySQL グリーン解凍バージョンのインストールと設定手順

手順: 1. MySQLデータベースをインストールする1. MySQL-5.6.17-winx64....

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

Linux システムでのスケジュールされたタスクの紹介

目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....

MySQL 8.0.11 圧縮版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0圧縮パッケージのインストール方法、詳細は次のとおりです知らせ:オペレーティング シ...

vuexの強制リフレッシュによるデータ損失問題の分析

vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...

8桁の割引コードをランダムに生成し、MySQLデータベースに保存します。

現在、多くの企業が割引コードを通じてプロモーションを行っています。今では、8桁の割引コードを実装して...

IE6/7 で絶対配置された要素が不可解に消えたりブロックされたりする問題を解決する方法

1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリ...

HTML コマンドラインインターフェースの実装

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

Linux で 1 回限りのスケジュールされたタスクを実行するための at コマンドの使用に関する詳細な説明

目次序文1. 一度限りの計画タスクの紹介2. コマンド3. 1回限りのスケジュールタスクを作成する4...

HTML の順序なしリストタグと順序付きリストタグの使用例

1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...

Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法

1. mysqldump コマンドを使用してデータベースをエクスポートします (このコマンドのパスで...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文JS の this ポインターは、初心者にとって常に頭痛の種でした。今日は、これが地面に落ちたと...