某個 Python 項目,基于 Python:3.6 與 Django:1.11 框架開發,希望項目能夠容器化,然后可以通過 docker-compose 等工具編排容器/應用,本篇文章的目標是自定義Django基礎鏡像。

與《為什么需要自定義一個基礎鏡像?》文章相同,基礎鏡像作用是為項目鏡像提供支持。它構建在 Python 官方鏡像之上,添加項目一些需要的擴展模塊,例如 Django、pymysql、Gunicorn等常用模塊,具體以項目實際需求為準。
最后為能夠高效的處理靜態文件請求,使用 Nginx 反向代理 Django 應用,不過這是下一篇文章要講的了,《Django容器(下): 使用Gunicorn管理Django》,敬請期待 公眾號每周四 docker專題更新文章。。
容器鏡像: python:3.6
容器系統: debian 9 (stretch)
Docker版本: CE - 17.06.0
Docker主機: Ubuntu Server 16.04tree base/
base/
├── conf
│?? ├── 404.html
│?? ├── default.conf
│?? ├── nginx.conf
│?? ├── requirements.txt
│?? ├── sources.list
│?? ├── ssl
│?? │?? ├── domain.crt
│?? │?? └── domain.key
│?? └── supervisord.conf
└── `Dockerfile`
2 directories, 9 filescat base/Dockerfile
# start-base
FROM python:3.6
MAINTAINER dongnan #<@微信公眾號:運維錄>
# apt
COPY conf/sources.list /etc/apt/sources.list
RUN apt-get update \
&& apt-get install -y supervisor nginx \
&& apt-get clean \
&& rm -r /var/lib/apt/lists/*
# env
ENV TZ=Asia/Shanghai \
LANG=en_US.UTF-8
# django
COPY conf/requirements.txt /root/
RUN pip --no-cache-dir install -r /root/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/這個 Dockerfile 很短,因為是項目基礎鏡像,只做一些基礎工作就可以了。
它首先安裝 supervisor nginx 軟件包,然后是設置容器的環境變量。
最后使用 pip 安裝項目依賴,django 、pymysql 都在 requirements.txt 這個文件中定義。
docker build -t start-base .
Sending build context to Docker daemon 767kB
Step 1/8 : FROM python:3.6
# ...省略
Successfully built fc3f6f242301
Successfully tagged start-basedocker images --format "{{.Repository}} {{.Tag}}"
start-base latest最后來總結下文章中的知識點
項目鏡像提供支持,并在基礎鏡像之上添加項目代碼,完成項目鏡像構建工作。supervisor 在容器中管理 nginx、gunicorn (python WSGI Server)進程。pip 是 python 包管理工具,該工具提供了對python 包的查找、下載、安裝、卸載的功能。pip -i 選項, 指定倉庫地址,默認為 https://pypi.org/simple,**速度很慢**建議使用國內倉庫。參考文章
doker&k8s Qun [703906133]
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:Django容器(上):自定義基礎鏡像-創新互聯
標題網址:http://www.js-pz168.com/article12/djhddc.html
成都網站建設公司_創新互聯,為您提供移動網站建設、網站制作、手機網站建設、網頁設計公司、域名注冊、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯