精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

5分鐘將 Django 項目進行容器化管理

開發 項目管理
Dockerizing 容器化 Django 項目可能是一項艱巨的任務。一個復雜的 Django 項目可以有許多活動部分:Django 服務器、數據庫,可能還有 Redis 和 Celery 進程。

[[416793]]

本文轉載自微信公眾號「Python中文社區」,作者MATTHEW 。轉載本文請聯系Python中文社區公眾號。

本教程將向您展示如何在不到 5 分鐘的時間內對 Django 項目進行 Dockerize 容器化管理。如果您已經使用 Django 一段時間了,那么您之前很可能聽說過 Docker。這里有一個 Docker 的快速總結,以及為什么應該考慮在你的項目中使用它。

Dockerizing 容器化 Django 項目可能是一項艱巨的任務。一個復雜的 Django 項目可以有許多活動部分:Django 服務器、數據庫,可能還有 Redis 和 Celery 進程。

Docker 簡介

Docker 是一種非常流行的容器化管理工具。容器很強大,因為每次啟動容器時,您的環境都以完全相同的方式設置。

這樣做的好處是:

  • 您的代碼可以在任何支持 Docker 的操作系統上運行。
  • 您無需在主機上配置系統依賴項,從而節省時間。
  • 您的本地環境和生產環境可以完全相同,這樣能夠消除僅在生產中發生的錯誤。

了解 Docker

本教程并未深入介紹 Docker 的工作原理。相反,本教程將重點介紹如何專門為 Django 設置 Docker。

如果您想了解有關 Docker 的更多信息,我的建議是閱讀官方指南。這是一個相對較短的教程,但涵蓋了您需要知道的所有內容!

https://docs.docker.com/language/python/

將 Django 項目 Docker 化

無論是現有項目還是您正在啟動一個新項目,我們都將使用相同的資源將 Docker 實施到項目中。

我們將要使用的資源是 Cookiecutter Django。 Cookiecutter是一個用于從 cookiecutter(項目模板)引導項目的工具。它在創建新項目時節省了大量時間,因為它為您配置了大量樣板代碼。

https://github.com/pydanny/cookiecutter-django

Cookiecutter Django 最好的部分之一是它包含 Docker 配置。我們將使用此配置來了解 Docker 是如何在 Django 項目中實現的。

入門

首先,安裝Docker。

我們將創建兩個 Django 項目。第一個將是一個使用 django-admin 命令創建的簡單項目。第二個項目將使用 Cookiecutter Django 創建。

創建第一個項目

  1. virtualenv simpleenv 
  2. source simpleenv/bin/activate 
  3. pip install django 
  4. django-admin startproject simpleproject 

創建第二個項目

在另一個文件夾中,首先使用 pip install cookiecutter 安裝 Cookiecutter。這將全局安裝 Cookiecutter,以便隨時訪問。

我們現在可以使用任何 Cookiecutter 模板來引導項目。在新終端中運行以下命令以使用 Cookiecutter Django創建項目。

  1. virtualenv advancedVenv 
  2. source advancedVenv/bin/activate 
  3. cookiecutter gh:pydanny/cookiecutter-django 

命令 cookiecutter gh:pydanny/cookiecutter-django 以 Cookiecutter命令行用 GitHub 模板 pydanny/cookiecutter-django 創建項目。

此命令將提示您回答有關要生成的項目的幾個問題。通過按 Enter,您可以將每個答案保留為默認值。

當提示使用 use_docker 選項時,請確保按“y”,以便使用 Docker 配置項目。

完成所有提示后,將生成一個 Django 項目。我們將專門查看為配置 Docker 創建的文件。這些是:

  • compose文件夾
  • .dockerignore 文件
  • local.yml 文件
  • production.yml文件

TLDR

這就是 Dockerize 容器化管理 Django 項目所需的全部內容。只需將這些文件夾和文件復制到您的其他 Django 項目中并調整它們,使其指向正確的文件。

如果您想查看更高級的 Docker 配置,請生成一個啟用了 use_celery 標志的 Cookiecutter Django 項目。Docker 配置將包括 Celery 和 Redis 的設置。

了解 Docker 配置

compose 文件夾包含兩個文件夾,一個用于本地開發,一個用于生產。同樣,local.yml 文件用于本地開發,production.yml 文件用于生產。

compose/local 文件夾與 local.yml 文件密切相關。

compose/production文件夾與 production.yml文件密切相關。

Docker-Compose 是最需要重點掌握的工具。我們使用它來運行多容器 Docker 應用程序。它是安裝 Docker 附帶的命令行程序的一部分。

使用 Docker 運行項目

確保您的計算機上運行了 Docker 應用程序,否則以下命令將無法正常執行。

我們使用 Docker-Compose 來構建我們項目的鏡像Image。 Images就像我們Container應用程序的藍圖。

一旦構建了鏡像Image,我們就創建了一個容器Container,它基本上是一個鏡像Image的運行實例。如果我們對項目的依賴項(例如 Python 依賴項)進行了任何更改,那么我們需要重建 Image 以使其生效。

運行以下命令構建 Docker Image鏡像:

  1. docker-compose -f local.yml build 

請注意,此命令采用帶有 -f 標志的參數。這告訴 Docker 使用 local.yml 文件作為配置文件。

如果我們打開 local.yml 文件,會有以下內容:

  1. version: '3' 
  2.  
  3. volumes: 
  4.   local_postgres_data: {} 
  5.   local_postgres_data_backups: {} 
  6.  
  7. services: 
  8.   django: 
  9.     build: 
  10.       context: . 
  11.       dockerfile: ./compose/local/django/Dockerfile 
  12.     image: my_awesome_project_local_django 
  13.     container_name: django 
  14.     depends_on: 
  15.       - postgres 
  16.     volumes: 
  17.       - .:/app:z 
  18.     env_file: 
  19.       - ./.envs/.local/.django 
  20.       - ./.envs/.local/.postgres 
  21.     ports: 
  22.       - "8000:8000" 
  23.     command: /start 
  24.  
  25.   postgres: 
  26.     build: 
  27.       context: . 
  28.       dockerfile: ./compose/production/postgres/Dockerfile 
  29.     image: my_awesome_project_production_postgres 
  30.     container_name: postgres 
  31.     volumes: 
  32.       - local_postgres_data:/var/lib/postgresql/data:Z 
  33.       - local_postgres_data_backups:/backups:z 
  34.     env_file: 
  35.       - ./.envs/.local/.postgres 
  36.  
  37.   docs: 
  38.     image: my_awesome_project_local_docs 
  39.     container_name: docs 
  40.     build: 
  41.       context: . 
  42.       dockerfile: ./compose/local/docs/Dockerfile 
  43.     env_file: 
  44.       - ./.envs/.local/.django 
  45.     volumes: 
  46.       - ./docs:/docs:z 
  47.       - ./config:/app/config:z 
  48.       - ./my_awesome_project:/app/my_awesome_project:z 
  49.     ports: 
  50.       - "7000:7000" 
  51.     command: /start-docs 

這個文件是一個配置文件,列出了 Docker 運行我們的多容器應用程序所需的一切。注意services部分。共有三種服務; django、postgres 和docs。

在每項服務下都有一些配置選項。

同樣,如果您想深入了解每個命令的細節,請返回 Docker 文檔。如果我們看一下 django 服務,我們有以下內容:

  1. django: 
  2.   build: 
  3.     context: . 
  4.     dockerfile: ./compose/local/django/Dockerfile 

這會對服務進行配置,以便它使用特定的 DockerFile。所使用的 DockerFile 來自 compose 文件夾內的local Docker 配置。

希望這顯示了所有 Docker 配置是如何連接在一起的。 local.yml 文件包含指向 compose 文件夾內特定 DockerFiles 的服務。除了 DockerFiles 之外,還使用了其他文件。

例如,在 compose/django/Dockerfile 文件的末尾,我們有以下內容:

  1. ... 
  2.  
  3. COPY ./compose/production/django/entrypoint /entrypoint 
  4. RUN sed -i 's/\r$//g' /entrypoint 
  5. RUN chmod +x /entrypoint 
  6.  
  7. ... 
  8.  
  9. ENTRYPOINT ["/entrypoint"

這告訴 Docker,當 Docker-Compose 使用此 DockerFile 時,它將調用entrypoint腳本,該腳本可以在 compose/production/django/entrypoint 中找到。打開該文件并查看內容。您會看到它基本上在 Postgres 數據庫成功連接時記錄日志。

再看一下 django 服務:

  1. django: 
  2.   build: 
  3.     command: /start 

django 服務的一個重要部分是 command 屬性。這告訴 Docker 這個容器的啟動命令是start腳本。我們可以在 compose/local/django 中找到這個文件。在這個文件中,有以下內容:

  1. #!/bin/bash 
  2.  
  3. set -o errexit 
  4. set -o pipefail 
  5. set -o nounset 
  6.  
  7.  
  8. python manage.py migrate 
  9. python manage.py runserver_plus 0.0.0.0:8000 

這應該看起來很熟悉。我們有 Django 遷移和正在運行的服務器。這里需要注意的是 runserver_plus 命令來自 Django Extensions。如果您沒有安裝該軟件包,您可以將 runserver_plus 替換為 runserver。

注意不要刪除 0.0.0.0:8000,因為容器需要將端口映射到主機。

現在我們了解了 Docker 是如何配置的,最后一部分是運行這個命令來啟動多容器應用程序:

  1. docker-compose -f local.yml up 

這將運行 local.yml 文件中的所有服務。運行此命令后,您可以在瀏覽器中轉到您的本地主機,您應該會看到默認的登錄頁面。

通過此設置,您可以運行 Django 服務器、Postgres 數據庫和文檔。

最終更改

您將需要為您的項目配置 Docker 文件。需要注意的一些事項:

環境變量

Docker Compose 文件將環境變量文件加載到容器中。這些環境變量文件存儲在 Cookiecutter Django 生成的 .envs 文件夾中。為了能夠讀取這些值,您需要安裝一個處理環境變量的包。

Cookiecutter Django 推薦的包是 Django-Environ。您可以使用以下命令安裝此軟件包:

  1. pip install django-environ 

數據庫設置

數據庫憑據也作為環境變量包含在內,因此請確保具有正確的數據庫設置。

  1. DATABASES = {"default": env.db("DATABASE_URL")} 
  2. DATABASES["default"]["ATOMIC_REQUESTS"] = True 

允許的主機

確保您允許的主機包括 localhost。

  1. ALLOWED_HOSTS = ["localhost""0.0.0.0""127.0.0.1"

最終 Docker 依賴于兩個組件:Docker-Compose 和 DockerFiles。我們有 local.yml 用于本地開發。此文件指向 compose/local 文件夾,其中包含在本地運行 Docker 所需的所有內容。同樣,我們有 production.yml 用于生產,它使用 compose/production 文件夾。 

我強烈建議在您自己的項目中使用 Cookiecutter Django。它不僅是專業開發的絕佳資源,而且可用于學習許多最佳實踐,包括如何在 Django 項目中配置 Docker。

 

責任編輯:武曉燕 來源: Python中文社區
相關推薦

2012-06-28 10:26:51

Silverlight

2017-07-04 16:23:10

容器ocker技術

2021-06-02 09:12:04

App自動化測試測試自動化

2025-03-18 00:00:00

云原生系統訂單

2021-04-30 16:23:58

WebRTC實時音頻

2020-09-14 11:30:26

HTTP3運維互聯網

2021-01-29 11:43:53

SSHLinux命令

2023-09-07 23:52:50

Flink代碼

2020-12-17 10:00:16

Python協程線程

2021-03-12 09:45:00

Python關聯規則算法

2020-11-23 16:23:59

CSS設計技術

2009-11-26 11:19:52

NIS服務器

2011-07-11 09:58:52

2010-11-03 11:01:05

求職面試

2021-01-29 11:25:57

Python爬山算法函數優化

2020-02-17 13:45:27

抓取代碼工具

2020-05-15 07:30:08

黑客Thunderbolt漏洞

2020-12-07 11:23:32

Scrapy爬蟲Python

2021-03-23 15:35:36

Adam優化語言

2015-05-07 11:31:21

服務器虛擬化深信服
點贊
收藏

51CTO技術棧公眾號

男人的天堂亚洲| 欧美a一欧美| 曰韩精品一区二区| 国产91一区二区三区| 日韩精品一区二区三区国语自制| 色天下一区二区三区| 欧美日韩一区二区三区不卡 | 婷婷综合视频| 亚洲成人黄色网址| 搡女人真爽免费午夜网站| 成年人网站在线| av欧美精品.com| 国产日韩在线视频| 国产尤物在线视频| 久久久久久久久久久久久久| 亚洲韩国日本中文字幕| 亚洲综合日韩欧美| 国产在线美女| 中文字幕av在线一区二区三区| 999在线免费观看视频| 无码人妻精品一区二| 在线中文一区| 神马久久久久久| 日本黄色特级片| 9l视频自拍九色9l视频成人| 欧美日韩免费高清一区色橹橹| 99久久久精品视频| 麻豆免费在线视频| 91视视频在线观看入口直接观看www | 亚洲天堂手机版| 一区二区国产在线观看| 久久伊人免费视频| 国产性猛交xx乱| 特黄特色欧美大片| 精品久久久三级丝袜| 成年网站免费在线观看| 欧亚一区二区| 色哟哟国产精品| 青青青免费在线| 色网在线观看| 亚洲永久免费av| 三年中文高清在线观看第6集| 黄色美女网站在线观看| 91亚洲永久精品| 国产乱码精品一区二区三区卡| 国产精品色综合| 久久国产精品无码网站| 国产成人av网址| 成人av网站在线播放| av成人天堂| 午夜剧场成人观在线视频免费观看| 强乱中文字幕av一区乱码| 999国产精品999久久久久久| 中国日韩欧美久久久久久久久| wwwwww日本| 欧美在线电影| 色老头一区二区三区| 日韩精品久久久久久久的张开腿让| 国产一区二区三区91| 亚洲日本中文字幕免费在线不卡| 亚洲狠狠婷婷综合久久久久图片| 伊人久久大香线蕉综合网站| 亚洲男人第一网站| 微拍福利一区二区| 激情五月色综合国产精品| 亚洲一区999| 岛国片在线免费观看| 日韩精品中文字幕第1页| 日韩一区二区福利| 在线免费日韩av| 亚洲高清在线| 日本精品久久久久久久| 国模私拍一区二区| 精品一区二区三区免费观看 | 亚洲婷婷综合久久一本伊一区| 天天综合中文字幕| 羞羞的网站在线观看| 亚洲一区国产视频| 91精品91久久久中77777老牛| 国偷自产一区二区免费视频| 欧美日韩国产另类不卡| 极品人妻一区二区| 天堂成人娱乐在线视频免费播放网站 | 国产精品一二三在线| 国产美女精品视频国产| 国产成人精品免费在线| 国产在线欧美日韩| 国产免费a∨片在线观看不卡| 亚洲色图欧洲色图| 国产www免费| 成人日韩精品| 精品福利一区二区三区免费视频| 在线免费观看成年人视频| 日韩大片在线播放| 午夜精品一区二区三区在线 | 欧美成人免费电影| 欧美精品三级日韩久久| 中文在线观看免费视频| 不卡在线一区| 97高清免费视频| 一本色道久久综合精品婷婷| 成人av资源在线| 一本色道久久综合亚洲二区三区| 超碰在线最新网址| 欧美日韩日日骚| 精品国产av色一区二区深夜久久 | 日本熟妇一区二区三区| 国产精品一区二区三区网站| 欧美亚洲另类久久综合| free性欧美hd另类精品| 色婷婷久久久亚洲一区二区三区 | 91精品导航| 在线观看免费高清视频97| 久久免费视频99| 国产在线精品免费| 色之综合天天综合色天天棕色 | 日本欧美精品在线| 精品人妻无码一区二区| 国产精品人妖ts系列视频| 日韩精品在线观看av| 亚洲伦理网站| 中文字幕亚洲一区二区三区| 女人十八岁毛片| 国产精品乡下勾搭老头1| 日韩免费电影一区二区三区| av中文字幕在线观看第一页| 欧美一区国产二区| 国产传媒视频在线| 美女久久一区| 麻豆成人在线播放| 91在线三级| 欧美va天堂va视频va在线| 国产午夜精品久久久久久久久| 亚洲尤物精选| 极品校花啪啪激情久久| 18+视频在线观看| 7777精品伊人久久久大香线蕉经典版下载| 亚洲综合网在线观看| 亚洲第一在线| 国产日韩在线一区二区三区| 牛牛精品在线| 精品欧美一区二区在线观看| 亚洲熟女www一区二区三区| 蜜桃在线一区二区三区| 欧美下载看逼逼| 日韩欧美精品电影| 国产丝袜精品视频| 日本高清不卡码| 久久久久久久综合色一本| 少妇高潮毛片色欲ava片| 成人偷拍自拍| 久久成人国产精品| 亚洲第一免费视频| 亚洲无线码一区二区三区| 国内自拍偷拍视频| 激情偷拍久久| 精品一卡二卡三卡四卡日本乱码| 多野结衣av一区| 亚洲精品一区二区在线| 毛片视频网站在线观看| 久久精品欧美一区二区三区麻豆| 欧美性猛交久久久乱大交小说 | 中文字幕有码无码人妻av蜜桃| 亚洲国产精品黑人久久久| 黄色手机在线视频| 四虎成人av| 91丨九色丨国产| 国产精品186在线观看在线播放| 亚洲国产免费av| 潘金莲一级淫片aaaaaa播放| 国产日韩欧美综合在线| 91 在线视频观看| 一区二区亚洲精品| 鲁丝一区鲁丝二区鲁丝三区| 日韩一区二区三区在线免费观看| 色777狠狠综合秋免鲁丝| 国产精品自偷自拍| 亚洲地区一二三色| 国产黄色录像视频| 国产自产2019最新不卡| 精品视频一区二区三区免费| 性猛交ⅹ×××乱大交| 亚洲精品国产成人影院| 国产精品日韩一区二区免费视频| 亚洲黄色网址| 久久亚洲精品毛片| 香港三日本三级少妇66| 欧美天堂一区二区三区| 欧美三根一起进三p| 91丝袜国产在线播放| 日本不卡一区在线| 亚洲午夜视频| 天堂精品视频| 国产精品调教视频| 国产精品久久久久77777| av在线播放国产| 亚洲午夜激情免费视频| 亚洲国产精品国自产拍久久| 91福利社在线观看| 欧美激情一区二区视频| 国产欧美一区二区精品性色 | 亚洲另类欧美日韩| 国产精品久久久久aaaa| 成年人的黄色片| 国产一区二区三区四区五区入口 | 亚洲永久av| 欧美久久精品午夜青青大伊人| 日本亚洲欧美| 精品日韩在线一区| 一级全黄裸体免费视频| 欧美日韩中文字幕在线| 杨钰莹一级淫片aaaaaa播放| 久久久99久久| 国产激情视频网站| 国产精品18久久久久久久网站| 午夜视频在线瓜伦| 国产手机视频一区二区| 永久免费看av| 久久人人88| 欧美一级爱爱| 丝袜美腿一区二区三区动态图| 亚洲最大福利视频网| 欧美亚洲黄色| 国产精品久久久久av免费| av不卡高清| 欧美激情一区二区三区高清视频| 黄色免费在线看| 中文字幕在线亚洲| 嫩草精品影院| 亚洲老头老太hd| 神马午夜电影一区二区三区在线观看| 91麻豆精品国产91久久久久久 | 国产传媒久久文化传媒| 不卡的av中文字幕| 日韩av中文字幕一区二区三区| 欧美亚洲精品一区二区| 亚洲免费激情| 波多野结衣综合网| 亚洲国产高清一区| 欧美日韩福利在线| 伊人久久大香线蕉综合热线| www.日本少妇| 亚洲视频日本| 久久久久久免费看| 在线欧美福利| 精品国产一区三区| 午夜亚洲精品| 亚洲五月天综合| 日韩av一区二区在线影视| 精品视频无码一区二区三区| 美女尤物久久精品| 免费看污黄网站| 美女视频黄a大片欧美| 一区二区三区四区毛片| 九九九久久久精品| 性鲍视频在线观看| 国产精品一二三| 免费日本黄色网址| 91首页免费视频| 精品国产aaa| 国产精品区一区二区三| 青花影视在线观看免费高清| 亚洲欧美视频在线观看| 免费毛片在线播放免费| 午夜久久福利影院| 久久精品视频5| 69堂国产成人免费视频| 成人av无码一区二区三区| 精品福利一区二区三区| 欧美一区二区三区少妇| 国产亚洲福利一区| 欧美精品日韩少妇| 欧美大学生性色视频| av资源在线播放| 国产精品黄视频| 日韩中文字幕无砖| 久久久精品动漫| 久久在线视频| 成人免费在线网| 日韩av一区二区三区四区| 香蕉视频xxxx| 91视频在线看| 亚洲色偷偷综合亚洲av伊人| 亚洲一区在线看| 日韩在线视频不卡| 日韩一区二区高清| 亚洲色图21p| 久久亚洲精品一区二区| 久草在线中文最新视频| 国产一区私人高清影院| 精品久久对白| 黄频视频在线观看| 99成人在线| 手机av在线网| 久久男人中文字幕资源站| 男人av资源站| 一本在线高清不卡dvd| 99久久精品国产成人一区二区| 日韩精品在线视频| 亚洲精品一线| 国产精品香蕉av| 日韩免费电影在线观看| 大地资源第二页在线观看高清版| 亚洲综合日本| 第一页在线视频| 欧美国产欧美亚州国产日韩mv天天看完整| 久草资源在线视频| 欧美唯美清纯偷拍| 三级在线播放| 欧美激情va永久在线播放| 国产精品黄色片| 激情一区二区三区| 国内精品福利| 日本中文字幕观看| 国产欧美综合在线| 日韩精品在线免费视频| 日韩精品一区二区三区视频在线观看| 国产精品免费观看| 欧美一级电影久久| 国产精品久久久久久久久久白浆| 在线码字幕一区| 日本欧美久久久久免费播放网| 亚洲调教欧美在线| 一区二区三区欧美在线观看| 91国内精品久久久| 国产亚洲在线播放| 亚洲播播91| 日产中文字幕在线精品一区| 亚洲美女色禁图| 亚洲欧美日韩偷拍| 亚洲一区精品在线| 亚洲第一成年人网站| 欧美成年人在线观看| 日本免费在线一区| 亚洲精品不卡| 奇米综合一区二区三区精品视频| 国产黄色网址在线观看| 亚洲国产精品一区二区久久| www.热久久| 久久99精品视频一区97| 欧美黄色一级| 成人在线观看毛片| 国产盗摄一区二区三区| 免费在线黄色片| 精品日韩一区二区| 超碰在线中文字幕| 国产区二精品视| 国模大胆一区二区三区| 日本三级日本三级日本三级极| 一区二区国产盗摄色噜噜| 午夜精品在线播放| 欧美激情videoshd| 蜜桃久久久久| 黄色片久久久久| 久久精品人人做人人综合| www.五月婷婷.com| 中文在线不卡视频| 粉嫩一区二区三区在线观看| 中文字幕一区二区三区四区五区人| 韩国毛片一区二区三区| 国产一二三四区| 亚洲成人教育av| 一区二区三区四区日本视频| 日本一区二区高清视频| 男男视频亚洲欧美| 国产精品视频一区二区三| 日韩精品影音先锋| 国产一二在线播放| 日产中文字幕在线精品一区 | 欧洲一区二区av| 巨大荫蒂视频欧美大片| 翡翠波斯猫1977年美国| 亚洲永久免费| 中文字幕无码日韩专区免费| 日韩精品一区二区三区四区| av高清不卡| 亚洲美女自拍偷拍| 成人免费高清视频| 波多野结衣在线观看一区| 日韩一级裸体免费视频| 成人免费直播在线| 美女一区二区三区视频| 一区二区三区在线免费视频 | 日韩小视频在线观看| 日本精品在线观看| 日韩黄色片视频| 亚洲人成网站色在线观看| 手机福利小视频在线播放| 国产区精品视频| 亚洲欧洲另类| 日韩成人短视频| 亚洲女人天堂av| 精品视频在线播放一区二区三区| 成 年 人 黄 色 大 片大 全| 国产精品无圣光一区二区| 性一交一乱一伧老太| 国产精品99久久久久久久久久久久| 亚洲成人免费| 欧美丰满老妇熟乱xxxxyyy| 日韩欧美一级精品久久|