Centos8はDockerを使用して、Djangoプロジェクトの詳細なチュートリアルを展開します

前書き

この記事では、django + uwsgi + nginxデプロイメントを介したDockerでのDjangoプロジェクトのデプロイメントを紹介します。

学習プロセスを記録するため、現在の上位バージョンが使用されます。

Pythonのバージョンは3.8.3です
djangoのバージョンは3.0.6です
nginxのバージョンは1.17.10です

簡単な紹介の後、トピックに移ります。

作業ディレクトリを作成します

プロジェクト、Dockerfile、その他のファイルを保存するための作業ディレクトリを作成します。

mkdir uwsgidocker

各ファイルについて簡単に説明する

docker-compose.yml:Docker Composeは、複数のコンテナで構成されるアプリケーションを定義および実行するためにdockerが提供するコマンドラインツールです。
作成を使用すると、YAMLファイルを使用してアプリケーションの各サービスを宣言的に定義し、1つのコマンドでアプリケーションを作成して開始できます。
最初はドッカーを使いませんでした-compose.yml
Dockerfile:ミラーを構築するために使用されるテキストファイルです。テキストコンテンツには、ミラーを構築するための手順と手順が含まれています。
my_django:新しく作成されたdjangoプロジェクトであり、主に許可されています_HOSTS =[]許可に変更_HOSTS =["*"] 
nginxconf:これは、nginxイメージを作成するためのnginx構成とDockerfileファイルを含むフォルダーです。
pip.conf:これは、主にダウンロードを高速化するためのpipに使用されるpip構成に関するものです。
uwsgi_conf.ini:uwsgi構成ファイル

注:djangoプロジェクトのsettings.pyファイルで、ALLOWED_HOSTS = []をALLOWED_HOSTS = [” *”]に変更する必要があります。

uwsgiミラーを作成する

Dockerfileに基づいてuwsgiのミラーイメージを作成し、実行します。

FROM python:3.8.3
# ディレクトリを作成する
RUN mkdir -p /usr/src/app
# 作業ディレクトリを設定する
WORKDIR /usr/src/app

# ピップ.confファイルをにコピーします/root/.pip/pip.conf
COPY pip.conf /root/.pip/pip.conf
# ピップを更新
RUN pip install --upgrade pip
# 一般的なプロジェクトでdjangoとuwsgiをダウンロードするには、要件をダウンロードするだけで済みます.txt
RUN pip install django && pip install uwsgi
# 現在のディレクトリ内のすべてのファイルをコピーし、プロジェクト、uwsgi構成ファイルのみをコピーします
COPY ./usr/src/app/
# 実行時にuwsgiを開始します
CMD uwsgi --ini uwsgi_conf.ini
# 露出ポート
EXPOSE 80808080008888

uwsgi構成ファイル、公式ウェブサイト

[ uwsgi]
# プロジェクトディレクトリは現在のディレクトリにあるので、直接書き込むだけです
chdir = my_django
# uwsgiスタートアップファイル、プロジェクトの下のwsgi.py
module = my_django.wsgi
# メインスレッドが存在することを許可します(true)
master =true
# プロセス数
processes =1
# プロジェクトの実行ポートを指定するために使用され、ソケットとhttpを使用できます。見やすいようにhttpを使用します。
http =0.0.0.0:8000
# socket =0.0.0.0:8000

# http =10.0.0.10:8000
# socket =10.0.0.10:8008
# socket =/usr/src/app/my_django/uwsgi.sock
# サーバーの終了時に環境を自動的にクリーンアップし、unixソケットファイルとpidファイルを削除します
vacuum =true

さて、2つのファイルで、uwsgiミラーを作成できます。次のコマンドを実行して、ミラーイメージを生成します。

docker build -t myuwsgi ./

dockerimagesを使用して画像を表示します

uwsgiミラーを実行します

画像が作成されたので、次のステップは画像を実行してブラウザで表示することです。

次のコマンドを直接使用して、見やすいようにポートを公開します。

docker run --rm -it --name webuwsgi -p 8000:8000 myuwsgi

運用結果

次に、ブラウザでアクセスし、IPとポートを入力して192.168.56.102:8000にアクセスできます。

これは、uwsgiイメージが完成し、正常に実行できることを示しています。

次のステップは、リバースプロキシ用のnginxミラーを作成することです

Nginxミラーを作成

最初にnginxconfディレクトリ、簡単な操作のために cd nginxconf /を入力してから、Dockerfileを編集します

FROM nginx

# デフォルトのnginx構成ファイルを削除します
RUN rm -rf /etc/nginx/conf.d/default.conf
# 現在のディレクトリにある構成ファイルをにコピーします/etc/nginx/conf.d/内容の下
COPY nginx.conf /etc/nginx/conf.d/nginx.conf

EXPOSE 80

nginx.confファイルを編集します

server {
 # リスニングポート
 listen 80;
 # CPU名
 server_name localhost;
 location /{
 include uwsgi_params;
 # uwsgiサービスのIPとポート、
 proxy_pass http://192.167.0.2:8000;
 # ソケットを使用する場合、uwsgiを直接使用できます
 # uwsgi_pass 192.167.0.2:8000;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
 
 location /static{
 # 静的ファイル
 alias /usr/share/nginx/html/static;}}

uwsgiコンテナのIPは、 dockerinspectコンテナ名を使用できます

docker inspect webuwsgi

見る

さて、次のステップはnginxミラーを作成することです、ミラーを作成するには次のコマンドを使用します

docker build -t mynginx ./

ドッカー画像を使用してミラーを表示します

Nginxイメージを実行します

画像が作成されたので、次のステップは画像を実行してブラウザで表示することです。

次のコマンドを直接使用して、見やすいようにポートを公開します。

docker run --rm -it -p 80:80--name nginxweb mynginx

運用結果

次に、ブラウザでアクセスし、ipと入力して192.168.56.102に直接アクセスします。

さて、これはdockerでuwsgi + nginxを使用したdjangoプロジェクトの展開です。

次に、 uwsgi + nginx + docker-composeを使用して、djangoプロジェクトをデプロイします。

**Docker-compose **を使用する##

docker-compose.ymlファイルを編集し、ipを割り当て、nginxおよびuwsgi構成ファイルにわずかな変更を加えます。

docker-compose.ymlファイル

version:'3'
services:
version:'3'
services:
 uwsgi:
 build:
 context:./
 image: uwsgi
 restart: always
 networks:
 django:
 ipv4_address:10.0.0.10
 ports:-"8000:8000"
 volumes:-/root/uwsgidocker/:/usr/src/app/:rw
 command: uwsgi --ini /usr/src/app/uwsgi_conf.ini

 nginx:
 image: myweb
 build:
 context:./nginxconf
 ports:-"80:80"-"8080:8080"
 volumes:-/root/uwsgidocker/nginxconf/nginx.conf:/etc/nginx/conf.d/nginx.conf:rw
 restart: always
 privileged:true
 networks:
 django:
 ipv4_address:10.0.0.20
networks:
 django:
 ipam:
 config:- subnet:10.0.0.0/24

uwsgi_conf.iniファイル、IPを変更するだけ

[ uwsgi]
chdir = my_django

module = my_django.wsgi

uid = root
gid = root

master =true

processes =1

# http =0.0.0.0:8000
# socket =0.0.0.0:8000

# http =10.0.0.10:8000
socket =10.0.0.10:8008
# socket =/usr/src/app/my_django/uwsgi.sock

vacuum =true

nginx.confファイルも同様に、ipを変更します

server {
 listen 80;
 server_name localhost;
 location /{
 include uwsgi_params;
 # proxy_pass http://192.167.0.2:8000;
 # uwsgi_pass 192.167.0.2:8000;
 # proxy_set_header Host $host;
 # proxy_redirect off;
 # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 # uwsgi_pass unix:/usr/src/app/my_django/uwsgi.sock;
 uwsgi_pass 10.0.0.10:8008;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
 location /static{
 alias /usr/share/nginx/html/static;}}

構成を少し変更した後、直接実行できます

**docker-compose run **

  1. 開始-ビルドイメージ&&開始コンテナ
docker-構成またはドッキング-compose up -dバックグラウンドで実行
  1. やめる
docker-compose stop #コンテナを停止します
  1. コンテナを停止して削除します
docker-compose down
  1. IP、アクセス、結果を入力してください

docker-composeを使うのが特に便利だと思いましたか?これも使うことをお勧めします!

総括する

これまで、Dockerを使用してDjangoプロジェクトをデプロイするcentos8の詳細なチュートリアルに関するこの記事を紹介しました。関連するdockerデプロイメントdjangoプロジェクトのコンテンツについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。 ZaLou.Cn!

Recommended Posts

Centos8はDockerを使用して、Djangoプロジェクトの詳細なチュートリアルを展開します
Centos7からCentos8にアップグレードするためのチュートリアル(詳細な図)
ローカルyumソースを構成するためのCentOS8詳細チュートリアル
マスタースレーブDNSサーバーを構築するためのCentos7チュートリアル
Centos8のdjangoプロジェクトにnginx + uwsgiをデプロイするためのチュートリアル
CentOSはNginxを使用してダウンロード機能サーバーを構築します
CentOSでGitサーバーをセットアップするための詳細な手順
centOS7を使用してフロントエンドプロジェクトを展開する
vmwareインストールCentOS7詳細チュートリアル
CentOS7をCentOS8にアップグレードする方法(詳細な手順)
CentOS8インストールMariaDB詳細チュートリアル
CentOS8.1ビルドGitlabサーバーの詳細なチュートリアル
CentOS6最小インストールKVM詳細チュートリアル
Centos8のインストール図(非常に詳細なチュートリアル)
Ubuntu14.04にDjangoをデプロイする方法
UbuntuはDockerを使用してGitlabをインストールします