隨著Docker的普及成熟,已經(jīng)逐漸成為部署項目的選,今天來和大家分享下如何使用docker部署django技術(shù)棧項目。
站在用戶的角度思考問題,與客戶深入溝通,找到大同網(wǎng)站設計與大同網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋大同地區(qū)。我們這里說的Django技術(shù)棧為:python3.6、Django2.2、redis、mysql、celery、gunicorn和nginx。在實際的生產(chǎn)項目中,這些組件分布在集群的不同機器,如Nginx、redis和Mysql可能會有單獨的團隊或部門負責。涉及的部署架構(gòu)和容器的編排會更為復雜,本文暫不去深究。本文主要介紹,如何使用 docker-compose 來編排這些組件,這種方式適用于測試環(huán)境的部署或者你的個人 sideproject 的部署。
本文默認你已經(jīng)了解 docker 和 docker-compose 的一些基本知識,若你不了解,可閱讀下面這些資料:
下面我們來說下如何部署。
項目組織結(jié)構(gòu)
首先,看下我們的項目組織結(jié)構(gòu),結(jié)構(gòu)如下:
├── LICENSE ├── README.md ├── compose │ ├── celery │ │ ├── Dockerfile │ │ ├── celery-beat.sh │ │ └── celery.sh │ ├── mysql │ │ └── my.cnf │ ├── nginx │ │ └── nginx.conf │ └── web │ ├── Dockerfile │ ├── entrypoint.sh │ ├── gunicorn.conf │ └── gunicorn.sh ├── docker-compose.yml ├── docker_django_demo │ ├── __init__.py │ ├── celery.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── env.tpl ├── manage.py ├── requirements.txt